Timeline



Nov 3, 2020:

11:34 PM Changeset in webkit [269357] by graouts@webkit.org
  • 9 edits
    1 add in trunk

align-items should be a discrete animatable property
https://bugs.webkit.org/show_bug.cgi?id=218535
<rdar://problem/71012428>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/StyleSelfAlignmentData.cpp: Added.

(WebCore::operator<<):

  • rendering/style/StyleSelfAlignmentData.h:
10:23 PM Changeset in webkit [269356] by Diego Pino Garcia
  • 2 edits
    2 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stale baselines of two mediastream tests.

Also update bug number of failing test.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt: Removed.
  • platform/gtk/fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt: Removed.
9:50 PM Changeset in webkit [269355] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Gardening adClickAttribution failure

Unreviewed test gardening.

Also grouped some target-related entries together

  • platform/wpe/TestExpectations:
8:59 PM Changeset in webkit [269354] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Ignore order when parsing inset and color for box-shadow
https://bugs.webkit.org/show_bug.cgi?id=182677

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-11-03
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update tests to pass now that we parse inset, a color, and the lengths
component of <shadow> values in any order.

https://drafts.csswg.org/css-backgrounds/#typedef-shadow

  • web-platform-tests/css/css-backgrounds/parsing/box-shadow-valid-expected.txt:

Source/WebCore:

According to the spec [1], box-shadow should allow the inset keyword,
a color, and the lengths component in any order. Our implementation
allowed only 2 out of the 4 possible orders; fix our parsing to
match the spec.

[1]: https://drafts.csswg.org/css-backgrounds/#typedef-shadow

Above description is (almost) a direct quote from <cnardi@chromium.org>
who previously submitted a patch for this bug.

Change is covered by existing test

LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/box-shadow-valid.html

and new test

LayoutTests/fast/box-shadow/box-shadow-invalid-values.html

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeSingleShadow): Parse inset,
color, and lengths component of a single <shadow> in any order.

LayoutTests:

Add additional test coverage around rejecting invalid box-shadow
values (e.g. multiple colors, multiple insets, multiple lengths-components).

https://drafts.csswg.org/css-backgrounds/#typedef-shadow

  • LayoutTests/fast/box-shadow/box-shadow-invalid-values.html: Added.
  • LayoutTests/fast/box-shadow/box-shadow-invalid-values-expected.txt: Added.
8:55 PM Changeset in webkit [269353] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for ARM64E debug build
https://bugs.webkit.org/show_bug.cgi?id=218143

  • runtime/JSCPtrTag.cpp:

(JSC::tagForPtr):

8:54 PM Changeset in webkit [269352] by Diego Pino Garcia
  • 6 edits
    2 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update state of flaky crash tests that are actually failing.

Some tests were actually passing after removing or updating their baseline.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Removed.
  • platform/gtk/fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt: Removed.
  • platform/gtk/media/controls-styling-strict-expected.txt:
  • platform/gtk/media/track/track-cue-rendering-horizontal-expected.txt:
  • platform/gtk/media/track/track-cue-rendering-vertical-expected.txt:
  • platform/gtk/media/video-aspect-ratio-expected.txt:
8:07 PM Changeset in webkit [269351] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Rename Run::needsHyphen to hasHyphen
https://bugs.webkit.org/show_bug.cgi?id=218541

Reviewed by Sam Weinig.

  1. Integration uses the term "has" instead of "needs".
  2. Runs will gain the hyphen character soon (when we introduce the concept of rendered content (vs. original content)).
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationRun.h:

(WebCore::LayoutIntegration::Run::TextContent::hasHyphen const):
(WebCore::LayoutIntegration::Run::TextContent::TextContent):
(WebCore::LayoutIntegration::Run::TextContent::needsHyphen const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::hasHyphen const):

6:50 PM Changeset in webkit [269350] by sbarati@apple.com
  • 4 edits
    1 add in trunk

Add back the removed assertion from r269338 and add a test
https://bugs.webkit.org/show_bug.cgi?id=218543

Reviewed by Filip Pizlo.

JSTests:

  • stress/bad-osr-exit-checkpoint-state-assertion-during-js-lock-destruction.js: Added.

(foo):
(let.a.get length):

Source/JavaScriptCore:

The assertion from r269338 was wrong in JSLock::willReleaseLock because
of our use of DropAllLocks. However, it is correct inside the topmost ~VMEntryScope.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::~VMEntryScope):

6:31 PM Changeset in webkit [269349] by ysuzuki@apple.com
  • 48 edits
    1 add in trunk/Source

[JSC] Add JITCage support
https://bugs.webkit.org/show_bug.cgi?id=218143

Reviewed by Saam Barati.

Source/JavaScriptCore:

Towards software verified JIT, this patch adds partial JIT-Caging support which cages JIT call / jumps in a certain format.
This is currently only enabled when internal SDK is enabled. And it is only enabled in ARM64E for now.
Currently, this patch does not have CSS JIT support. Subsequent patch will add it.
We ensured that JS2 and RAMification are neutral.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/JITOperationList.cpp:

(JSC::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):

  • assembler/JITOperationList.h:

(JSC::JITOperationList::map const):
(JSC::JITOperationList::assertIsHostFunction):
(JSC::JITOperationList::assertIsJITOperation):
(JSC::JITOperationList::contains const): Deleted.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::farJump):

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::callTrustedPtr):
(JSC::MacroAssemblerARM64E::call):
(JSC::MacroAssemblerARM64E::callRegister):
(JSC::MacroAssemblerARM64E::farJumpRegister):
(JSC::MacroAssemblerARM64E::farJump):
(JSC::MacroAssemblerARM64E::ret):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::farJump):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::farJump):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::farJump):

  • bytecode/BytecodeList.rb:
  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGOSRExitCompilerCommon.h:
  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::setJITEnabled):
(JSC::initializeJITPageReservation):

  • jit/GPRInfo.h:
  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::unlink):

  • jit/ThunkGenerators.cpp:

(JSC::emitPointerValidation):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:

(JSC::LLInt::getOpcode):
(JSC::LLInt::getOpcodeWide16):
(JSC::LLInt::getOpcodeWide32):
(JSC::LLInt::getCodePtr):
(JSC::LLInt::getWide16CodePtr):
(JSC::LLInt::getWide32CodePtr):
(JSC::LLInt::getCodeFunctionPtr):
(JSC::LLInt::getWide16CodeFunctionPtr):
(JSC::LLInt::getWide32CodeFunctionPtr):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::entrypointTrampoline):
(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):
(JSC::LLInt::getHostCallReturnValueEntrypoint):
(JSC::LLInt::fuzzerReturnEarlyFromLoopHintEntrypoint):
(JSC::LLInt::genericReturnPointEntrypoint):

  • llint/LLIntEntrypoint.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::commonCallEval):
(JSC::LLInt::dispatchToNextInstruction):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::generateThunkWithJumpToPrologue):
(JSC::LLInt::generateThunkWithJumpToLLIntReturnPoint):
(JSC::LLInt::functionForCallEntryThunk):
(JSC::LLInt::functionForConstructEntryThunk):
(JSC::LLInt::functionForCallArityCheckThunk):
(JSC::LLInt::functionForConstructArityCheckThunk):
(JSC::LLInt::evalEntryThunk):
(JSC::LLInt::programEntryThunk):
(JSC::LLInt::moduleProgramEntryThunk):
(JSC::LLInt::wasmFunctionEntryThunk):
(JSC::LLInt::handleCatchThunk):
(JSC::LLInt::genericReturnPointThunk):
(JSC::LLInt::fuzzerReturnEarlyFromLoopHintThunk):
(JSC::LLInt::createJSGateThunk):
(JSC::LLInt::createWasmGateThunk):
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::loopOSREntryGateThunk):
(JSC::LLInt::entryOSREntryGateThunk):
(JSC::LLInt::wasmOSREntryGateThunk):
(JSC::LLInt::exceptionHandlerGateThunk):
(JSC::LLInt::returnFromLLIntGateThunk):
(JSC::LLInt::tagGateThunk):
(JSC::LLInt::untagGateThunk):
(JSC::LLInt::jitCagePtrThunk):
(JSC::LLInt::normalOSRExitTrampolineThunk):
(JSC::LLInt::checkpointOSRExitTrampolineThunk):
(JSC::LLInt::checkpointOSRExitFromInlinedCallTrampolineThunk):
(JSC::LLInt::returnLocationThunk):

  • llint/LLIntThunks.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • llint/WebAssembly.asm:
  • offlineasm/arm64.rb:
  • offlineasm/mips.rb:
  • runtime/Gate.h: Added.
  • runtime/JSCConfig.h:
  • runtime/JSCPtrTag.cpp:

(JSC::tagForPtr):
(JSC::callerType):
(JSC::calleeType):

  • runtime/JSCPtrTag.h:

(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):
(JSC::tagCodePtrWithStackPointerForJITCall):
(JSC::untagCodePtrWithStackPointerForJITCall):

  • runtime/MatchResult.h:

(JSC::MatchResult::MatchResult):

  • runtime/Options.cpp:

(JSC::disableAllJITOptions):
(JSC::canUseJITCage):

  • runtime/OptionsList.h:
  • wasm/WasmSlowPaths.cpp:
  • yarr/YarrJIT.cpp:
  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::execute):

Source/WTF:

  • wtf/OSAllocator.h:

(WTF::OSAllocator::reserveAndCommit):
(WTF::OSAllocator::reallocateCommitted):

  • wtf/PageReservation.h:

(WTF::PageReservation::reserve):
(WTF::PageReservation::reserveWithGuardPages):
(WTF::PageReservation::reserveAndCommitWithGuardPages):
(WTF::PageReservation::PageReservation):

  • wtf/PlatformEnable.h:
  • wtf/PlatformUse.h:
  • wtf/PtrTag.h:

(WTF::assertIsTaggedWith):
(WTF::tagCodePtrWithStackPointerForJITCall): Deleted.
(WTF::untagCodePtrWithStackPointerForJITCall): Deleted.

  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::reserveAndCommit):

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::reserveAndCommit):

5:44 PM Changeset in webkit [269348] by sihui_liu@apple.com
  • 38 edits
    11 copies
    11 adds in trunk

Set up basic infrastructure for SpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=218216
<rdar://problem/70703788>

Reviewed by Youenn Fablet.

Source/WebCore:

Introduce SpeechRecognitionConnectionClient, SpeechRecognitionConnection and SpeechRecognitionServer.
SpeechRecognition is a SpeechRecognitionConnectionClient that can send SpeechRecognitionRequest to
SpeechRecognitionServer via SpeechRecognitionConnection. Currently we have one SpeechRecogntionConnection and
one SpeechRecogntionServer per page. SpeechRecognitionServer will be responsible for handling
SpeechRecognitionRequests, including audio capturing and hosting speech recognition engine, and that
implementation is not included in this patch.

Our current plan is put SpeechRecognitionServer in UI process (or GPU process when media code is all moved) and
keep SpeechRecognitionConnectionClient in web process.

Test: fast/speechrecognition/start-recognition-twice-exception.html

  • Headers.cmake:
  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::create):
(WebCore::SpeechRecognition::SpeechRecognition):
(WebCore::SpeechRecognition::startRecognition):
(WebCore::SpeechRecognition::stopRecognition):
(WebCore::SpeechRecognition::abortRecognition):
(WebCore::SpeechRecognition::didStart):
(WebCore::SpeechRecognition::didStartCapturingAudio):
(WebCore::SpeechRecognition::didStartCapturingSound):
(WebCore::SpeechRecognition::didStartCapturingSpeech):
(WebCore::SpeechRecognition::didStopCapturingSpeech):
(WebCore::SpeechRecognition::didStopCapturingSound):
(WebCore::SpeechRecognition::didStopCapturingAudio):
(WebCore::SpeechRecognition::didFindNoMatch):
(WebCore::SpeechRecognition::didReceiveResult):
(WebCore::SpeechRecognition::didError):
(WebCore::SpeechRecognition::didEnd):

  • Modules/speech/SpeechRecognition.h:
  • Modules/speech/SpeechRecognitionConnection.h: Added.

(WebCore::SpeechRecognitionConnection::~SpeechRecognitionConnection):

  • Modules/speech/SpeechRecognitionConnectionClient.h: Added.

(WebCore::SpeechRecognitionConnectionClient::SpeechRecognitionConnectionClient):
(WebCore::SpeechRecognitionConnectionClient::identifier const):

  • Modules/speech/SpeechRecognitionConnectionClientIdentifier.h: Added.
  • Modules/speech/SpeechRecognitionError.h: Added.

(WebCore::SpeechRecognitionError::encode const):
(WebCore::SpeechRecognitionError::decode):

  • Modules/speech/SpeechRecognitionErrorCode.h:
  • Modules/speech/SpeechRecognitionRequest.cpp: Added.

(WebCore::SpeechRecognitionRequest::create):
(WebCore::SpeechRecognitionRequest::SpeechRecognitionRequest):

  • Modules/speech/SpeechRecognitionRequest.h: Added.

(WebCore::SpeechRecognitionRequest::clientIdentifier const):
(WebCore::SpeechRecognitionRequest::lang const):
(WebCore::SpeechRecognitionRequest::continuous const):
(WebCore::SpeechRecognitionRequest::interimResults const):
(WebCore::SpeechRecognitionRequest::maxAlternatives const):

  • Modules/speech/SpeechRecognitionRequestInfo.h: Added.

(WebCore::SpeechRecognitionRequestInfo::encode const):
(WebCore::SpeechRecognitionRequestInfo::decode):

  • Modules/speech/SpeechRecognitionResultData.h: Added.

(WebCore::SpeechRecognitionAlternativeData::encode const):
(WebCore::SpeechRecognitionAlternativeData::decode):
(WebCore::SpeechRecognitionResultData::encode const):
(WebCore::SpeechRecognitionResultData::decode):

  • Modules/speech/SpeechRecognitionResultList.h:
  • Modules/speech/SpeechRecognitionUpdate.cpp: Added.

(WebCore::convertEnumerationToString):
(WebCore::SpeechRecognitionUpdate::create):
(WebCore::SpeechRecognitionUpdate::createError):
(WebCore::SpeechRecognitionUpdate::createResult):
(WebCore::SpeechRecognitionUpdate::SpeechRecognitionUpdate):
(WebCore::SpeechRecognitionUpdate::error const):
(WebCore::SpeechRecognitionUpdate::result const):

  • Modules/speech/SpeechRecognitionUpdate.h: Added.

(WebCore::SpeechRecognitionUpdate::clientIdentifier const):
(WebCore::SpeechRecognitionUpdate::type const):
(WebCore::SpeechRecognitionUpdate::encode const):
(WebCore::SpeechRecognitionUpdate::decode):
(WTF::LogArgument<WebCore::SpeechRecognitionUpdateType>::toString):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/TaskSource.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::speechRecognitionConnection):

  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • page/DummySpeechRecognitionProvider.h: Added.
  • page/SpeechRecognitionProvider.h: Added.

Source/WebKit:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • UIProcess/SpeechRecognitionServer.cpp: Added.

(WebKit::SpeechRecognitionServer::SpeechRecognitionServer):
(WebKit::SpeechRecognitionServer::start):
(WebKit::SpeechRecognitionServer::processNextPendingRequestIfNeeded):
(WebKit::SpeechRecognitionServer::stop):
(WebKit::SpeechRecognitionServer::abort):
(WebKit::SpeechRecognitionServer::removePendingRequest):
(WebKit::SpeechRecognitionServer::invalidate):
(WebKit::SpeechRecognitionServer::startPocessingRequest):
(WebKit::SpeechRecognitionServer::stopProcessingRequest):
(WebKit::SpeechRecognitionServer::messageSenderConnection const):
(WebKit::SpeechRecognitionServer::messageSenderDestinationID const):

  • UIProcess/SpeechRecognitionServer.h: Added.
  • UIProcess/SpeechRecognitionServer.messages.in: Added.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createSpeechRecognitionServer):
(WebKit::WebProcessProxy::destroySpeechRecognitionServer):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: Added.

(WebKit::WebSpeechRecognitionConnection::create):
(WebKit::WebSpeechRecognitionConnection::WebSpeechRecognitionConnection):
(WebKit::WebSpeechRecognitionConnection::~WebSpeechRecognitionConnection):
(WebKit::WebSpeechRecognitionConnection::registerClient):
(WebKit::WebSpeechRecognitionConnection::start):
(WebKit::WebSpeechRecognitionConnection::stop):
(WebKit::WebSpeechRecognitionConnection::abort):
(WebKit::WebSpeechRecognitionConnection::invalidate):
(WebKit::WebSpeechRecognitionConnection::didReceiveUpdate):
(WebKit::WebSpeechRecognitionConnection::messageSenderConnection const):
(WebKit::WebSpeechRecognitionConnection::messageSenderDestinationID const):

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h: Added.
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.messages.in: Added.
  • WebProcess/WebCoreSupport/WebSpeechRecognitionProvider.h: Added.
  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::encodeArgument):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::speechRecognitionEnabled):
(WebPreferences::setSpeechRecognitionEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::initWithFrame):
(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

LayoutTests:

  • fast/speechrecognition/start-recognition-twice-exception-expected.txt: Added.
  • fast/speechrecognition/start-recognition-twice-exception.html: Added.
5:13 PM Changeset in webkit [269347] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Include path in generated IDL dependencies
https://bugs.webkit.org/show_bug.cgi?id=218480

Reviewed by Brent Fulgham.

Changes in Bug 218378 and Bug 217696 have lessened the reliance on
VPATH to find files. This means that more places need to be explicit
about the locations of their files. This change updates
preprocess-idls.pl to include full- and partial-paths when generating
dependency information.

No new tests -- this is a build system change.

  • bindings/scripts/preprocess-idls.pl:

(RemovePWD):

4:30 PM Changeset in webkit [269346] by Kocsen Chung
  • 1 copy in tags/Safari-610.2.11.51.8

Tag Safari-610.2.11.51.8.

4:16 PM Changeset in webkit [269345] by Ryan Haddad
  • 10 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline tests for Big Sur after r268958 and r268520.

  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac/fast/forms/listbox-width-change-expected.txt:
  • platform/mac/fast/forms/option-text-clip-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac/fast/text/indic-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
4:11 PM Changeset in webkit [269344] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

Link against the ANGLE Shared Library
https://bugs.webkit.org/show_bug.cgi?id=218539
<rdar://problem/69062211>

Reviewed by Tim Horton.

Weak link against libANGLE-shared.dylib.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • Sources.txt: Stop compiling ANGLEWebKitBridge.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::isANGLEAvailable): Add a helper to check if ANGLE loaded properly.
(WebCore::GraphicsContextGLOpenGL::create):

4:03 PM Changeset in webkit [269343] by ggaren@apple.com
  • 48 edits in trunk/Source

Drop most uses of the phrase 'neuter' from the tree
https://bugs.webkit.org/show_bug.cgi?id=218536

Reviewed by Tim Horton.

In ArrayBuffer use cases, the spec has gone with "detached".

In other cases, I picked something.

Source/JavaScriptCore:

(next):

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(fill):
(globalPrivate.typedArrayElementCompare):

  • bytecode/LinkTimeConstant.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckDetached):
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsDetachedIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileCheckNeutered): Deleted.
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckDetached):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotDetached):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckNeutered): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered): Deleted.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBuffer::transferTo):
(JSC::ArrayBuffer::detach):
(JSC::ArrayBuffer::notifyDetaching):
(JSC::ArrayBuffer::neuter): Deleted.
(JSC::ArrayBuffer::notifyNeutering): Deleted.

  • runtime/ArrayBuffer.h:

(JSC::ArrayBuffer::isDetached):
(JSC::ArrayBuffer::detachingWatchpointSet):
(JSC::ArrayBuffer::isNeutered): Deleted.
(JSC::ArrayBuffer::neuteringWatchpointSet): Deleted.

  • runtime/ArrayBufferView.cpp:

(JSC::ArrayBufferView::ArrayBufferView):
(JSC::ArrayBufferView::~ArrayBufferView):
(JSC::ArrayBufferView::setDetachable):
(JSC::ArrayBufferView::setNeuterable): Deleted.

  • runtime/ArrayBufferView.h:

(JSC::ArrayBufferView::isDetached const):
(JSC::ArrayBufferView::possiblySharedBuffer const):
(JSC::ArrayBufferView::isShared const):
(JSC::ArrayBufferView::baseAddress const):
(JSC::ArrayBufferView::byteOffset const):
(JSC::ArrayBufferView::isDetachable const):
(JSC::ArrayBufferView::isNeutered const): Deleted.
(JSC::ArrayBufferView::isNeuterable const): Deleted.

  • runtime/GenericTypedArrayView.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::detach):
(JSC::JSArrayBufferView::neuter): Deleted.

  • runtime/JSArrayBufferView.h:

(JSC::JSArrayBufferView::isDetached):
(JSC::JSArrayBufferView::isNeutered): Deleted.

  • runtime/JSDataView.cpp:

(JSC::JSDataView::create):

  • runtime/JSDataViewPrototype.cpp:

(JSC::getData):
(JSC::setData):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::set):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncReverse):
(JSC::genericTypedArrayViewPrivateFuncSort):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::createTypedArrayIteratorObject):

  • runtime/JSTypedArrayViewPrototype.h:
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::growSuccessCallback):

Source/WebCore:

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::create):
(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::hasDetachedChannelBuffer const):

  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::initialize):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::SerializedScriptValue::create):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::putImageData):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageSourceHelper):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::headerAvailable):

3:58 PM Changeset in webkit [269342] by Wenson Hsieh
  • 4 edits in trunk/Source

Adjust some compile-time guards in GraphicsContextCG.cpp
https://bugs.webkit.org/show_bug.cgi?id=218534

Reviewed by Tim Horton.

Source/WebCore:

Rename USE_DRAW_PATH_DIRECT to HAVE(CG_CONTEXT_DRAW_PATH_DIRECT), and delete the associated FIXME comment.
Also, put the line segment stroking optimization added in r268240 behind a new compile-time flag,
USE(CG_CONTEXT_STROKE_LINE_SEGMENTS_WHEN_STROKING_PATH). Note that we use USE rather than HAVE for this
flag, due to the fact that this API exists on all CoreGraphics platforms (but we only intend to use it in
certain configurations).

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):

Source/WTF:

Add HAVE(CG_CONTEXT_DRAW_PATH_DIRECT).

  • wtf/PlatformHave.h:
3:50 PM Changeset in webkit [269341] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Obtain default timezone ID from cached icu::TimeZone
https://bugs.webkit.org/show_bug.cgi?id=218531
<rdar://problem/64265880>

Reviewed by Ross Kirsling.

ICU internally caches icu::TimeZone (icu::TimeZone::createDefault), and it is not updated even if system timezone is changed.
As a result, we will see wrong timezone in Intl.DateTimeFormat when system timezone is changed.
We have a mechanism that clears TimeZone cache for JS Date. However, this mechanism is not used for Intl.DateTimeFormat.

This patch retrieves timezone ID from cached icu::TimeZone in VM::dateCache. So system's timezone change can be effective for
Intl.DateTimeFormat, and timezone becomes consistent between JS Date and Intl.DateTimeFormat.

Unfortunately, we need to use C++ APIs since we do not have a way to get timezone ID from icu::TimeZone.
Once https://unicode-org.atlassian.net/browse/ICU-21372 is fixed, we can switch to C APIs.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::isUTCEquivalent): Deleted.
(JSC::defaultTimeZone): Deleted.

  • runtime/JSDateMath.cpp:

(JSC::DateCache::defaultTimeZone):

  • runtime/JSDateMath.h:

(JSC::isUTCEquivalent):

3:44 PM Changeset in webkit [269340] by Alan Coon
  • 2 edits in branches/safari-610.2.11.51-branch/Source/JavaScriptCore

Cherry-pick r269338. rdar://problem/71014532

Don't assert there is no checkpoint side state when dropping the JSLock
https://bugs.webkit.org/show_bug.cgi?id=218537

Reviewed by Filip Pizlo.

You may have multiple OSR exit sidestate data on the stack, and then call into
API code, which might DropAllLocks. Hence, this assert is wrong.

Working on a test. Will land in a followup.

  • runtime/JSLock.cpp: (JSC::JSLock::willReleaseLock):

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

3:43 PM Changeset in webkit [269339] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.8

3:36 PM Changeset in webkit [269338] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Don't assert there is no checkpoint side state when dropping the JSLock
https://bugs.webkit.org/show_bug.cgi?id=218537

Reviewed by Filip Pizlo.

You may have multiple OSR exit sidestate data on the stack, and then call into
API code, which might DropAllLocks. Hence, this assert is wrong.

Working on a test. Will land in a followup.

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

3:33 PM Changeset in webkit [269337] by Devin Rousso
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: should have the option to Edit Breakpoint... or at least Reveal Breakpoint in Sources Tab
https://bugs.webkit.org/show_bug.cgi?id=218366

Reviewed by Brian Burg.

  • UserInterface/Views/BreakpointPopover.js:

(WI.BreakpointPopover.appendContextMenuItems):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.get statusImageElement): Added.
(WI.DOMTreeElement.prototype._statusImageContextmenu):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.populateContextMenu):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNodeBreakpoints):
Show an "Edit Breakpoint..." action (via WI.BreakpointPopover.appendContextMenuItems) when
there is only one WI.DOMBreakpoint (if there are multiple then it would be confusing),
otherwise using "Breakpoints" (plural) for the other actions.

  • UserInterface/Base/Main.js:

(WI.showSourcesTab):

  • UserInterface/Views/EventListenerSectionGroup.js:

(WI.EventListenerSectionGroup):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):

  • UserInterface/Views/SourcesTabContentView.js:

(WI.SourcesTabContentView.prototype.revealAndSelectRepresentedObject): Added.
(WI.SourcesTabContentView.prototype.revealAndSelectBreakpoint): Deleted.
Rename breakpointToSelect to representedObjectToSelect for more flexibility in the case
that there are multiple WI.DOMBreakpoint for the given WI.DOMNode, in which case we want
to select the WI.DOMNode instead.

  • Localizations/en.lproj/localizedStrings.js:
3:17 PM Changeset in webkit [269336] by Karl Rackler
  • 1 delete in trunk/LayoutTests/platform/mac-catalina/editing/Input

Fix broken rename

3:05 PM Changeset in webkit [269335] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Populate parent branch for tags
<rdar://problem/70998928>
https://bugs.webkit.org/show_bug.cgi?id=218521

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Version bump.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.commit): Populate cache of commits when the canonical branch does not match
the provided commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestSvn):
(TestSvn.test_tag_previous):

2:49 PM Changeset in webkit [269334] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] remove sysctl.oidfmt. access
https://bugs.webkit.org/show_bug.cgi?id=218524
<rdar://problem/70353722>

Reviewed by Per Arne Vollan.

Access to "sysctl.oidfmt." was needed due to a bug <rdar://problem/64208532>.
Since that issue has been fixed, we can remove the access.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:17 PM Changeset in webkit [269333] by graouts@webkit.org
  • 10 edits
    1 add in trunk

align-content should be a discrete animatable property
https://bugs.webkit.org/show_bug.cgi?id=218530

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::DiscretePropertyWrapper::DiscretePropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/StyleContentAlignmentData.cpp: Added.

(WebCore::operator<<):

  • rendering/style/StyleContentAlignmentData.h:
1:37 PM Changeset in webkit [269332] by ddkilzer@apple.com
  • 8 edits
    4 adds in trunk

Add test for cacheModelForMainBundle() in WebKitLegacy
<https://webkit.org/b/217960>

Reviewed by Darin Adler.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • Add TestingFunctions.h to the project.

(Generate Export Files):

  • Append WebKit.Testing.exp to the generated export file if WK_BUILD_FOR_TESTING is set to YES.

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

(WK_BUILD_FOR_TESTING): Add.

  • This single setting controls whether test code is built and test functions are exported. Currently only Debug and Release configurations are supported.
  • Configurations/WebKitLegacy.xcconfig:

(OTHER_CFLAGS):

  • Include necessary macro definition when WK_BUILD_FOR_TESTING is YES.

(WK_CFLAGS_BUILD_FOR_TESTING_YES):

  • Define macro set when WK_BUILD_FOR_TESTING is YES. Used by both OTHER_CFLAGS and OTHER_TAPI_FLAGS to enable test code.

(OTHER_TAPI_FLAGS[sdk=iphone*]):

  • Include necessary macro definition when WK_BUILD_FOR_TESTING is YES.
  • Add -extra-private-header argument to declare exported functions in TestingFunctions.h when WK_BUILD_FOR_TESTING is YES.
  • TestingFunctions.h: Add.
  • Declare functions exported when WK_BUILD_FOR_TESTING is YES.
  • WebKit.Testing.exp: Add.
  • This contains a list of test functions that are only exported when WK_BUILD_FOR_TESTING is YES.
  • WebView/WebPreferences.mm:

(cacheModelForMainBundle):

  • Add NSString *bundleIdentifier argument to make testable.

(TestWebPreferencesCacheModelForMainBundle): Add.

  • Add function only used for testing, and only compiled when WK_BUILD_FOR_TESTING is YES.

(+[WebPreferences initialize]):

  • Change to pass main bundle identifier as argument.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add WebPreferencesTest.mm to project.
  • TestWebKitAPI/Tests/WebKitLegacy/cocoa/WebPreferencesTest.mm: Add.

(TestWebKitAPI::TEST):

  • Add test for TestWebPreferencesCacheModelForMainBundle().
1:24 PM Changeset in webkit [269331] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[GPU Process] Flush canvas displayList from doAfterUpdateRendering
https://bugs.webkit.org/show_bug.cgi?id=218401

Patch by Rini Patel <rini_patel@apple.com> on 2020-11-03
Reviewed by Simon Fraser.

Source/WebCore:

Leverage prepareCanvasesForDisplayIfNeeded() for canvas 2D context to flush the display list items via doAfterUpdateRendering.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createContext2d):
(WebCore::HTMLCanvasElement::prepareForDisplay):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::prepareForDisplay):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::flushDrawingContextAndCommit):

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::flushDrawingContextAndCommit): Deleted.

1:08 PM Changeset in webkit [269330] by Wenson Hsieh
  • 9 edits
    2 adds in trunk/Source

Replace DisplayList::Recorder::Delegate::(will|did)AppendItem with (will|did)AppendItemOfType
https://bugs.webkit.org/show_bug.cgi?id=218518

Reviewed by Simon Fraser.

Source/WebCore:

In preparation for larger changes to display lists and display list items in <webkit.org/b/218406>, replace
DisplayList::Recorder::Delegate's willAppendItem and didAppendItem client hooks with
willAppendItemOfType and didAppendItemOfType instead. Once all display list items are no longer ref-counted
objects that inherit from DisplayList::Item, plumbing these items through virtual client hooks will introduce
unnecessary complexity and runtime overhead.

Instead, we can refactor these methods to only pass the type of the display list item being appended; this is
because all extant clients that implement these hooks only require the item for its ItemType.

  • Headers.cmake:

Pull DisplayList::ItemType out into a separate header: DisplayListItemType.h. This header additionally
contains several helper functions (sizeOfItemInBytes, isInlineItem, and isDrawingItem) that operate only
on ItemTypes, rather than items themselves.

We will use these helper functions as we work towards <webkit.org/b/218406>.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListItemType.cpp: Added.

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h: Added.
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::willAppendItemOfType):

Use the new DisplayList::isDrawingItem(ItemType) function here, instead of checking whether the item is a
subclass of DrawingItem.

(WebCore::DisplayList::Recorder::didAppendItemOfType):
(WebCore::DisplayList::Recorder::appendItem):
(WebCore::DisplayList::Recorder::willAppendItem): Deleted.
(WebCore::DisplayList::Recorder::didAppendItem): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::willAppendItemOfType):
(WebCore::DisplayList::Recorder::Delegate::didAppendItemOfType):
(WebCore::DisplayList::Recorder::Delegate::willAppendItem): Deleted.
(WebCore::DisplayList::Recorder::Delegate::didAppendItem): Deleted.

Source/WebKit:

See WebCore ChangeLog for more information.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
12:51 PM Changeset in webkit [269329] by Lauro Moura
  • 2 edits
    2 adds in trunk/LayoutTests

[GTK] Layout Test webaudio/codec-tests/mp3/128kbps-44khz.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=132056

Unreviewed test gardening.

This tests has been stable for a long time. Checking the actual
audio file with Audacity, the gstreamer one, the baseline, the mac one,
and the mp3 source differs only in the delay before the sound starts
playing, likely due to platform-specific loading time or something
similar. So a rebaseline should be enough.

  • platform/glib/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
  • platform/gtk/TestExpectations:
12:32 PM Changeset in webkit [269328] by Fujii Hironori
  • 3 edits
    2 adds in trunk

[TextureMapper] Crashed in TextureMapperLayer::paintUsingOverlapRegions
https://bugs.webkit.org/show_bug.cgi?id=214817
<rdar://problem/66489090>

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::paintUsingOverlapRegions has the expression
overlapRegion.bounds().size().area() which crashes for a very
large layer.

computeOverlapRegions returned very large overlap and non-overlap
regions without taking the clip bounds into account.

Change computeOverlapRegions to return clipped regions.
paintUsingOverlapRegions no longer needs to clip the returned
regions.

Test: compositing/tiling/huge-layer-with-opacity.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/tiling/huge-layer-with-opacity-expected.html: Added.
  • compositing/tiling/huge-layer-with-opacity.html: Added.
12:20 PM Changeset in webkit [269327] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

Add helper methods to encode and decode IPC arguments as raw data
https://bugs.webkit.org/show_bug.cgi?id=218516

Reviewed by Geoff Garen.

Add new helper methods to IPC::Encoder and IPC::Decoder that can be used to convert anything that can be
sent as an IPC argument into raw bytes (i.e. using WebCore::SharedBuffer), as long as there are no IPC
attachments in the encoded data.

For more details, see <webkit.org/b/218406>.

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::Decoder):

Add private versions of the Encoder and Decoder constructors that avoid IPC header data. These constructors are
called only from within encodeSingleObject and decodeSingleObject, respectively.

(IPC::m_bufferDeallocator):

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decodeSingleObject):

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::Encoder):
(IPC::Encoder::releaseAttachments):
(IPC::Encoder::hasAttachments const):

  • Platform/IPC/Encoder.h:
12:16 PM Changeset in webkit [269326] by commit-queue@webkit.org
  • 1 edit
    41 adds in trunk/Tools

Add SwiftUI MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=218393

Patch by Adam Roben <Adam Roben> on 2020-11-03
Rubber-stamped by Tim Horton.

Using WKWebView in SwiftUI is pretty cumbersome today. At a minimum,
you need to wrap the WKWebView in a NS/UIViewRepresentable SwiftUI
view, but to react to any state changes in the WKWebView (e.g.,
-canGoBack changing from NO to YES) you need to bridge between
WKWebView's KVO and SwiftUI's use of Combine publishers or
ObservableObjects. Setting up WKWebView's various delegates has to
happen down inside the NS/UIViewRepresentable's Coordinator object.
And so on.

There have been some attempts at this in the past, e.g.:

https://medium.com/macoclock/how-to-use-webkit-webview-in-swiftui-4b944d04190a
https://medium.com/@mdyamin/swiftui-mastering-webview-5790e686833e
https://github.com/kylehickinson/SwiftUI-WebView

Someday it would be nice to provide an idiomatic SwiftUI API for
WebKit out of the box, like the new VideoPlayer API that wraps
AVPlayer.

This change provides a SwiftUI MiniBrowser implementation as well as a
very preliminary SwiftUI wrapper for WKWebView, originally authored by
James Savage. This only exposes a subset of the WKWebView API, and is
definitely not production ready yet, but will give us a place to
experiment with ways to make WebKit and SwiftUI work together better.

Here's James's description of the API:

The initial version of this API is composed of two primary
components: WebView and WebViewState. WebView conforms to
View, and its usage is straight-forward. WebViewState is novel,
and may not survive to the final API. It exists as a read-write
handle on the rather large amount of state that a web view offers.
This includes read-only access to properties about the current
page (title, url, hasOnlySecureContent), navigations
(estimatedProgress, isLoading), and back/forward history
(canGoBack, canGoForward). It also offers imperative methods
for navigation which map 1:1 with our existing Objective-C API.

struct BrowserView : View {

@StateObject var state = WebViewState(initialURL: URL(string: "https://apple.com")!)
var body: some View {

HStack {

Text(verbatim: state.title ?? "Nothing Loaded")
Text(verbatim: state.url ?? "--")
WebView(state: state)

}

}

}

JavaScript dialogs are supported with both built-in behavior for all
clients, and a customization point if desired. Clients can pass a
Binding<Dialog?> to their WebView to disable the built-in
display, and provide custom handling.

Navigation policies can be customized using
webViewNavigationPolicy(onAction:onResponse:) to provide custom
decider for the action and response phases. These propagate via the
environment, allowing them to be defined at an app, window, or
individual view level.

Future Directions

To make WebView as declarative as possible, we're investigating
how to make broader use of Binding for navigation. As a simple
example, you could imagine if the WebView's initializer took a
Binding<URL?> for the current page. However, this design alone is
too simplistic to model all states that the web view could be, so we
will likely need to introduce a more complex type for the binding.

Currently navigation policies are attached via View modifiers.
This has the benefit that they can be installed at the root of an
application, which is useful for a web browser where all tabs want
to have uniform policies. Given the number of customization points
in existing WKWebView delegates, this may fail to scale and lead
to undesirable ergonomics. Another approach would to be just use a
delegate protocol (a la DropDelegate:
https://developer.apple.com/documentation/swiftui/dropdelegate).

As a practical matter, we want to minimize the amount of work that
adding new functionality to WebKit API incurs for engineers. While
we could redefine every Objective-C type for SwiftUI, but this could
lead to SwiftUI falling behind as our Objective-C API gets updated.
We could use tools like @dynamicMemberLookup to automatically pull
our Objective-C APIs over to Swift, however this could have
undesirable impact our our ABI. There may be a better compromise we
haven’t yet reached.

  • MiniBrowserSwiftUI/Configurations/Base.xcconfig:
  • MiniBrowserSwiftUI/Configurations/Debug.xcconfig:
  • MiniBrowserSwiftUI/Configurations/MiniBrowserSwiftUI.xcconfig:
  • MiniBrowserSwiftUI/Configurations/Release.xcconfig:
  • MiniBrowserSwiftUI/Configurations/WebKit_SwiftUI.xcconfig:
  • MiniBrowserSwiftUI/MiniBrowserSwiftUI.xcodeproj/project.pbxproj:
  • MiniBrowserSwiftUI/MiniBrowserSwiftUI.xcodeproj/xcshareddata/xcschemes/MiniBrowserSwiftUI.xcscheme:
  • MiniBrowserSwiftUI/MiniBrowserSwiftUI.xcodeproj/xcshareddata/xcschemes/_WebKit_SwiftUI.xcscheme:

Added the new project and its configuration. The project was generated
from Xcode's "Multiplatform App" template. There are two targets: the
MiniBrowserSwiftUI app, and the _WebKit_SwiftUI framework. Both are
cross-platform. The build settings were extracted out of the .pbxproj
into the .xcconfig files.

  • MiniBrowserSwiftUI/Shared/Assets.xcassets/AccentColor.colorset/Contents.json:
  • MiniBrowserSwiftUI/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json:
  • MiniBrowserSwiftUI/Shared/Assets.xcassets/Contents.json:
  • MiniBrowserSwiftUI/Shared/Assets.xcassets/URLFieldBackground.colorset/Contents.json:

Defines a couple of colors and an empty icon for the app.

  • MiniBrowserSwiftUI/iOS/Info.plist:
  • MiniBrowserSwiftUI/macOS/Info.plist:
  • MiniBrowserSwiftUI/macOS/macOS.entitlements:
  • MiniBrowserSwiftUI/WebKit_SwiftUI/WebKit_SwiftUI-Info.plist: Added.

Added these files generated by Xcode. The only change was adding
com.apple.security.network.client to the entitlements so the browser
can connect to servers.

  • MiniBrowserSwiftUI/Shared/BrowserApp.swift: Added. This is the entry

point of the app, and just sets up a BrowserScene.

  • MiniBrowserSwiftUI/Shared/BrowserScene.swift: Added. This sets up

the browser's windows, each of which just contain a single BrowserTab.
On iOS we wrap the BrowserTab in a NavigationView so there will be
somewhere to show our toolbar buttons.

  • MiniBrowserSwiftUI/Shared/BrowserTab.swift: Added. This is the heart

of the browser.
(BrowserTab.body): Sets up the WebView itself plus some toolbar items:
the back/forward buttons and URL field.
(BrowserTab.onNavigate(to:)): Callback called when the user presses
Return in the URL field.
(BrowserTab.decidePolicy(for:state:)): Callback called when the
WebView is about to navigate, similar to WKNavigationDelegate's
-webView:decidePolicyForNavigationAction:decisionHandler:.
(BrowserTab.makeExternalNavigationAlert(_:)): Displays an alert to let
the user decide whether to follow a URL that will open in some other
application.
(UserInput): Represents text typed in the URL field after determining
whether it is a URL or a search query.
(ExternalURLNavigation): Provides the data for the external navigation
alert.
(BrowserTab_Previews): Shows a canned BrowserTab in Xcode's preview
canvas.

  • MiniBrowserSwiftUI/Shared/FoundationExtras.swift: Added. Provides a

few utility functions for URLs.

  • MiniBrowserSwiftUI/Shared/URLField.swift: Added.

(URLField): The SwiftUI view you use directly. It contains a leading
glyph (e.g., a lock icon when viewing a secure page), a text field,
a trailing accessory view provided by the caller, and a progress bar.
It also supports callbacks to notify the caller when the text field
gains/loses focus and when the user has committed the text in the
field (e.g., by pressing Return).
(Background): The background view for the URLField, which defines both
the rounded rectangle shape for the field and the progress bar.
(URLField_Previews): Shows some canned URLFields in Xcode's preview
canvas.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/Dialog.swift: Added.

(Dialog): Represents a single JavaScript dialog (alert, confirm, or
prompt).
(DialogContainer): Provides the default UI shared by all JavaScript
dialog types.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/JavaScriptDialogs.swift: Added.

(JavaScriptAlert): Default UI for a JavaScript alert dialog.
(JavaScriptConfirm): Default UI for a JavaScript confirm dialog.
(JavaScriptPrompt): Default UI for a JavaScript prompt dialog.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/Navigation.swift: Added.

(View.webViewNavigationPolicy(onAction:)):
(View.webViewNavigationPolicy(onResponse:)):
(View.webViewNavigationPolicy(onAction:onResponse:)):
These let the application specify navigation policy logic for any
descendant WebViews in the view hierarchy, using SwiftUI's Environment
facility.
(NavigationAction): Idiomatic SwiftUI wrapper around
WKNavigationAction and its decision handler callback.
(NavigationResponse): Idiomatic SwiftUI wrapper around
WKNavigationResponse and its decision handler callback.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/SwiftUIExtras.swift: Added.

(Color.platformSeparator):
(Color.platformBackground):
Cross-platform wrappers around platform-specific colors.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/WebView.swift: Added.

(WebView): The heart of the SwiftUI API. You provide it a WebViewState
struct to represent and control its state (similar to AVFoundation's
VideoPlayer view controlled by AVPlayer). You can optionally provide a
Binding to be notified of the current JavaScript dialog that the web
content wishes to display. If you don't provide this binding, WebView
will present the dialog using default UI.
(WebView.dialogView): Configures the default dialog UI if the caller
doesn't want to handle dialogs on its own.
(_WebView): Internal view that bridges SwiftUI to WKWebView.
(Coordinator): Internal class that functions as the WKWebView's
WKNavigationDelegate and WKUIDelegate.
(Coordinator.webView(_:decidePolicyFor:preferences:decisionHandler:)):
Looks for a navigation decider in the view's environment and delegates
to it if found, otherwise allows all navigations.

(Coordinator.webView(_:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)):
(Coordinator.webView(_:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)):
(Coordinator.webView(_:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)):
Passes the dialog information up to the WebView, which then decides
whether to present default UI itself or let the caller handle it.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/WebViewModifiers.swift: Added.

(View.webViewAllowsBackForwardNavigationGestures(_:)): Specifies
whether WebViews below this point in the view hierarchy should support
swipe gestures to navigate back/forward.

  • MiniBrowserSwiftUI/WebKit_SwiftUI/WebViewState.swift: Added.

(WebViewState): Represents the state and actions of a WebView.
Conforms to ObservableObject so SwiftUI views can react to changes in
the WebViewState.
(WebViewState.webView(_:didChangeKeyPath:)): Detects when the
WKWebView's state has changed via KVO and reflects those through the
ObservableObject.objectWillChange mechanism so SwiftUI views will be
updated.

(WebViewState.canGoBack):
(WebViewState.canGoForward):
(WebViewState.title):
(WebViewState.url):
(WebViewState.isLoading):
(WebViewState.estimatedProgress):
(WebViewState.hasOnlySecureContent):
Wrappers around WKWebView properties.

(WebViewState.load(_:)):
(WebViewState.goBack):
(WebViewState.goForward):
(WebViewState.reload):
(WebViewState.stopLoading):
(WebViewState.createPDF(configuration:completion:)):
Wrappers around WKWebView methods.

12:06 PM Changeset in webkit [269325] by stephan.szabo@sony.com
  • 8 edits in trunk/Source

[WinCairo/PlayStation] ICU 68.1 no longer exposes FALSE and TRUE macros by default
https://bugs.webkit.org/show_bug.cgi?id=218522

Reviewed by Don Olmstead.

Source/WebCore:

  • platform/text/TextCodecICU.cpp: Replace use of TRUE with true

Source/WebKit:

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: Replace FALSE with false

Source/WTF:

Replace uses of FALSE and TRUE with false and true.

  • wtf/text/icu/UTextProvider.h:
  • wtf/text/icu/UTextProviderLatin1.cpp:
  • wtf/text/icu/UTextProviderUTF16.cpp:
11:54 AM Changeset in webkit [269324] by Fujii Hironori
  • 2 edits in trunk/Tools

WebKitTestRunner --show-webview doesn't work since r268238
https://bugs.webkit.org/show_bug.cgi?id=218430

Reviewed by Simon Fraser.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Use insert_or_assign() of
std::unordered_map instead of insert() which does nothing if the
key already exists.

11:38 AM Changeset in webkit [269323] by Said Abou-Hallawa
  • 75 edits in trunk/Source

[GPU Process] Make ImageBuffer RefCounted
https://bugs.webkit.org/show_bug.cgi?id=218472

Reviewed by Simon Fraser.

Source/WebCore:

This will allow a better life cycle for the ImageBuffer.

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::setImageBuffer const):

  • html/CanvasBase.h:
  • html/CustomPaintCanvas.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty):

  • html/HTMLCanvasElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/HTMLVideoElement.h:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::takeImageBuffer):

  • html/ImageBitmap.h:
  • html/ImageBitmapBacking.cpp:

(WebCore::ImageBitmapBacking::ImageBitmapBacking):
(WebCore::ImageBitmapBacking::takeImageBuffer):

  • html/ImageBitmapBacking.h:
  • html/OffscreenCanvas.cpp:

(WebCore::DetachedOffscreenCanvas::DetachedOffscreenCanvas):
(WebCore::DetachedOffscreenCanvas::takeImageBuffer):
(WebCore::OffscreenCanvas::takeImageBuffer const):

  • html/OffscreenCanvas.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::snapshotNode):
(WebCore::InspectorPageAgent::snapshotRect):

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRect):
(WebCore::snapshotFrameRectWithClip):
(WebCore::snapshotSelection):
(WebCore::snapshotNode):

  • page/FrameSnapshotting.h:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • page/TextIndicator.cpp:

(WebCore::takeSnapshot):

  • platform/DragImage.cpp:

(WebCore::createDragImageFromSnapshot):

  • platform/HostWindow.h:
  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::copyRectToBuffer):
(WebCore::ImageBuffer::sinkIntoNativeImage):
(WebCore::ImageBuffer::sinkIntoImage):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImageBufferPipe.h:
  • platform/graphics/ShadowBlur.cpp:
  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.h:
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::clearResult):

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::setSourceImage):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::clearResult):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/mock/MockRealtimeVideoSource.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::invalidateBufferedForeground):

  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::postApplyResource):

  • rendering/svg/RenderSVGResourceGradient.h:
  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::clipToImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):

  • rendering/svg/SVGRenderingContext.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::drawPatternForContainer):

Source/WebKit:

Currently after a remote ImageBuffer is deleted, its identifier is locked
in the RemoteResourceCacheProxy till no remote client is referencing it.
Then an IPC message is sent to GPU Process to release it.

The plan is to decode the DisplayList::DrawImageBuffer by replacing the
ImageBuffer identifier with a RefPtr to the ImageBuffer itself. Once the
ImageBuffer is removed from the RemoteResourceCache, it is going to be
deleted after the last DrawImageBuffer is replayed back. So no locking
is needed to guarantee the existence of the ImageBuffer when it is drawn.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::flushDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackend::getImageData):

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheImageBuffer):

  • GPUProcess/graphics/RemoteResourceCache.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot const):

11:36 AM Changeset in webkit [269322] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/payment-request/show-method-optional-promise-rejects.https-expected.txt

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/payment-request/show-method-optional-promise-rejects.https-expected.txt:

Rebaseline the test after r269276, which added DumpJSConsoleLogInStdErr to address flakiness.

11:36 AM Changeset in webkit [269321] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp:

(WebCore::MainThreadGenericEventQueue::dispatchOneEvent):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::dispatchEvent):

11:26 AM Changeset in webkit [269320] by ysuzuki@apple.com
  • 33 edits
    3 adds in trunk

REGRESSION (r254038): Simple.com money transfer UI is very laggy (multiple seconds per keypress)
https://bugs.webkit.org/show_bug.cgi?id=218348

Reviewed by Darin Adler.

JSTests:

  • ChakraCore.yaml:
  • ChakraCore/test/Date/DateCtr.baseline-jsc: Added. The time before America/Los_Angeles timezone is effective should be handled as UTC-0752.
  • complex.yaml:
  • complex/timezone-offset-before-america-los-angeles-is-defined.js: Added for UTC-0752.

(shouldBe):

  • microbenchmarks/local-date-constructor.js: Added for microbenchmarking.

(test):

  • mozilla/ecma/Date/15.9.5.16.js:
  • mozilla/ecma/Date/15.9.5.18.js:
  • mozilla/ecma/Date/15.9.5.22-1.js:
  • mozilla/ecma/Date/15.9.5.22-2.js:
  • mozilla/ecma/Date/15.9.5.35-1.js:

When year is 0, America/Los_Angeles timezone is not effective, and mozilla test harness does not handle this timezone difference correctly.

Source/JavaScriptCore:

We have depth-1 LocalTimeOffset cache to avoid repeatedly calling localtime_r. But this depth-1 cache can be easily missed if
we parse Dates of multiple years. Instead of increasing depth as a work-around, this patch starts using ICU TimeZone cache.
This is used in SpiderMonkey and V8 too, and it is the right direction since ICU knows tzdata and can do more sophisticated caching.

Microbenchmark shows 24x improvement.

ToT Patched

local-date-constructor 2026.8715+-11.2909 85.0022+-1.0548 definitely 23.8449x faster

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/DateConstructor.cpp:

(JSC::millisecondsFromComponents):
(JSC::constructDate):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::calculateGregorianDateTime const):
(JSC::DateInstance::calculateGregorianDateTimeUTC const):

  • runtime/DateInstance.h:
  • runtime/DatePrototype.cpp:

(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSDateMath.cpp:

(JSC::OpaqueICUTimeZoneDeleter::operator()):
(JSC::localTimeOffset):
(JSC::DateCache::gregorianDateTimeToMS):
(JSC::DateCache::msToGregorianDateTime):
(JSC::DateCache::parseDate):
(JSC::DateCache::cachedDateInstanceData):
(JSC::DateCache::timeZoneCacheSlow):
(JSC::DateCache::reset):
(JSC::gregorianDateTimeToMS): Deleted.
(JSC::msToGregorianDateTime): Deleted.
(JSC::parseDate): Deleted.

  • runtime/JSDateMath.h:

(JSC::DateCache::timeZoneCache):

  • runtime/VM.cpp:

(JSC::VM::resetDateCache): Deleted.

  • runtime/VM.h:

(JSC::VM::resetDateCache):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

LayoutTests:

  • js/date-constructor-expected.txt: The time before America/Los_Angeles timezone is effective should be handled as UTC-0752. Use 1995 to test the intent correctly.
  • js/date-timeClip-large-values-expected.txt: Ditto about old timezone.
  • js/dom/script-tests/date-DST-time-cusps.js: Our timezone database was broken. Nov 02 2014 01:00:00 is not PDT.

(1.toString.match):

  • js/dom/script-tests/date-big-setdate.js: Fix and adjust for right DST periods.

(1.toString.match):

  • js/script-tests/date-constructor.js:

(object.valueOf):

  • platform/mac/fast/AppleScript/date-expected.txt: Ditto, 1800 does not have America/Los_Angeles.
  • platform/mac/fast/AppleScript/date.html:
  • storage/indexeddb/modern/date-basic-expected.txt: Nov 04 1955 is PST, not PDT.
  • storage/indexeddb/modern/date-basic-private-expected.txt: Ditto.
  • storage/indexeddb/modern/get-keyrange-expected.txt: Ditto.
  • storage/indexeddb/modern/get-keyrange-private-expected.txt: Ditto.
11:14 AM Changeset in webkit [269319] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r269190. rdar://problem/70970247

Increase camera failing timer to 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218389

Reviewed by Eric Carlson.

From testing, 3 seconds is not always enough if getUserMedia is quickly called multiple times.
Let's increase to 30 seconds to give room for slow systems while still being able to identify failures.

  • platform/mediastream/mac/AVVideoCaptureSource.h:

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

11:14 AM Changeset in webkit [269318] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/ThirdParty/ANGLE

Cherry-pick r267770. rdar://problem/70970346

Fix EXT_color_buffer_half_float on iOS
https://bugs.webkit.org/show_bug.cgi?id=217107

Reviewed by Kenneth Russell.

  • src/libANGLE/Context.cpp: (gl::Context::generateSupportedExtensions const):
  • src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateTextureFormatCaps):

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

11:14 AM Changeset in webkit [269317] by Alan Coon
  • 13 edits
    3 adds in branches/safari-610-branch/Source

Cherry-pick r266364. rdar://problem/70970205

Implement WEBGL_compressed_texture_s3tc_srgb extension
https://bugs.webkit.org/show_bug.cgi?id=215973

Patch by James Darpinian <James Darpinian> on 2020-08-31
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

  • src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::ExtAndVersionOrExt): (rx::nativegl::BuildInternalFormatInfoMap):

Source/WebCore:

Tested by webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp: (WebCore::convertToJSValue):
  • html/canvas/WebGLCompressedTextureS3TCsRGB.cpp: Added. (WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB): (WebCore::WebGLCompressedTextureS3TCsRGB::getName const): (WebCore::WebGLCompressedTextureS3TCsRGB::supported):
  • html/canvas/WebGLCompressedTextureS3TCsRGB.h: Added.
  • html/canvas/WebGLCompressedTextureS3TCsRGB.idl: Added.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getExtension): (WebCore::WebGLRenderingContext::getSupportedExtensions):
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::extensionIsEnabled): (WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData): (WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): (WebCore::WebGLRenderingContextBase::validateCompressedTexSubDimensions):
  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/ExtensionsGL.h:

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

11:14 AM Changeset in webkit [269316] by Alan Coon
  • 3 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266362. rdar://problem/70970398

WebGL goes in a bad state where glContext.createProgram() returns null
https://bugs.webkit.org/show_bug.cgi?id=215844

Patch by James Darpinian <James Darpinian> on 2020-08-31
Reviewed by Kenneth Russell.

Added test webgl/2.0.0/conformance/canvas/render-after-resize-test.html

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::reshape):

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

10:45 AM Changeset in webkit [269315] by ddkilzer@apple.com
  • 3 edits
    1 add in trunk/Source/ThirdParty/ANGLE

Stop building ANGLE source files twice
<https://webkit.org/b/218469>

Reviewed by Dean Jackson.

  • ANGLE.xcodeproj/project.pbxproj:

(ANGLE (dynamic)):

  • Replace sources with empty.cpp. Xcode requires a single source file to be compiled to create a dylib, even if the static library contains all necessary symbols.
  • Add dependency on "ANGLE (static)" target.
  • Configurations/ANGLE-dynamic.xcconfig:

(ANGLE_OTHER_LDFLAGS):

  • Add $(ANGLE_STATIC_LIB_OTHER_LDFLAGS).

(ANGLE_STATIC_LIB_OTHER_LDFLAGS): Add.

  • Special linker command-line switch to load all symbols from libANGLE.a when linking libANGLE-shared.dylib.
  • src/empty.cpp: Add.
  • See above why this is needed by Xcode.
10:45 AM Changeset in webkit [269314] by commit-queue@webkit.org
  • 24 edits in trunk

Unreviewed, reverting r268564, r268957, and r268962.
https://bugs.webkit.org/show_bug.cgi?id=218525

Caused 9% binary size increase in WebCore

Reverted changesets:

"CSSStyleDeclaration breaks JS spec (properties not showing up
in Object.getOwnPropertyNames)"
https://bugs.webkit.org/show_bug.cgi?id=217623
https://trac.webkit.org/changeset/268564

"Remove support for 'pixel' and 'pos' CSSOM prefixes"
https://bugs.webkit.org/show_bug.cgi?id=119712
https://trac.webkit.org/changeset/268957

"Remove non-standard 'css'/'Css' prefixed properties on
CSSStyleDeclaration"
https://bugs.webkit.org/show_bug.cgi?id=218158
https://trac.webkit.org/changeset/268962

10:00 AM Changeset in webkit [269313] by Wenson Hsieh
  • 11 edits in trunk/Source

Replace DisplayList::itemCount with DisplayList::isEmpty
https://bugs.webkit.org/show_bug.cgi?id=218517

Reviewed by Geoffrey Garen.

Source/WebCore:

In preparation for larger changes to display lists and display list items in <webkit.org/b/218406>, replace
DisplayList::itemCount() with DisplayList::isEmpty(). Once display list items are no longer stored in a
Vector of ref-counted items, keeping track of the exact item count will be difficult and introduce unnecessary
overhead, especially when reconstructing display lists out of shared memory in the GPU process.

Instead, change this to simply return whether or not the display list is empty (i.e. contains at least one
item), which is what (nearly) all call sites end up using itemCount() to determine anyways.

No change in behavior.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::isEmpty const):
(WebCore::DisplayList::DisplayList::itemCount const): Deleted.

  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::replayDisplayList):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::isEmpty const):
(WebCore::DisplayList::Recorder::itemCount const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

Source/WebKit:

Separately keep track of the item count in the context's display list. See WebCore/ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h: Use isEmpty() instead of checking itemCount().
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::flushDrawingContextAndCommit):

9:59 AM Changeset in webkit [269312] by Simon Fraser
  • 8 edits in trunk/Source

Scroll position can get reset after programmatic scroll
https://bugs.webkit.org/show_bug.cgi?id=218477

Reviewed by Antti Koivisto.

Source/WebCore:

Part of rdar://problem/69599531: Scrolling on netflix.com sometimes jumps to the top.

Scrolling thread scroll notifications are handled on the main thread asynchronously, and
there are two sources of delay: first, the RunLoop::main().dispatch() in ThreadedScrollingTree::scrollingTreeNodeDidScroll(),
and second the zero-delay m_updateNodeScrollPositionTimer in AsyncScrollingCoordinator.

This is a problem when doing programmatic scrolls, since the main thread can
programmatically scroll, then the above asynchrony means that
AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() gets called for an earlier
user scroll (or, as is often the case on netflix.com, a scroll triggered by the
rubberbanding timer on the scrolling thread).

This patches addresses these out-of-order scrolls by storing scrolling thread scroll updates
in a threadsafe data structure on the scrolling tree, and always applying those on the main
thread before handling other scroll changes.

This patch removes the zero-delay timer, which did serve a purpose of coalescing scroll
notifications from the scrolling thread and UI process (for iOS). With the patch, we still
get coalescing per RunLoop::main().dispatch(). We lose coalescing on iOS, but those
notifications should be just once per frame. If we find that it was necessary to coalesce,
we can put a timer back.

Not testable because it's very timing dependent.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::synchronizeStateFromScrollingTree):
(WebCore::AsyncScrollingCoordinator::noteScrollingThreadSyncCompleteForNode):
(WebCore::AsyncScrollingCoordinator::applyPendingScrollUpdates):
(WebCore::AsyncScrollingCoordinator::applyScrollUpdate):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): Deleted.
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired): Deleted.

  • page/scrolling/AsyncScrollingCoordinator.h:

(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate): Deleted.
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType const): Deleted.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::applyLayerPositionsInternal):
(WebCore::ScrollingTree::addPendingScrollUpdate):
(WebCore::ScrollingTree::takePendingScrollUpdates):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::ScrollUpdate::ScrollUpdate):
(WebCore::ScrollingTree::ScrollUpdate::canMerge const):
(WebCore::ScrollingTree::ScrollUpdate::merge):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

Source/WebKit:

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):

9:53 AM Changeset in webkit [269311] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation adjustment to cover internal testers
<rdar://68947198>

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:52 AM Changeset in webkit [269310] by Keith Rollin
  • 6 edits in trunk

Extend check-for-inappropriate-files-in-framework to WebKitLegacy and JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=218272
<rdar://problem/70748116>

Reviewed by Simon Fraser.

Bug 218268 reports that some *.txt files got included in WebKitLegacy.
To help protect against this happening in the future, extend
check-for-inappropriate-files-in-framework to check for *.txt files,
and apply the script to WebKitLegacy and JavaScriptCore in addition to
WebCore and WebKit.

Source/JavaScriptCore:

Source/WebKitLegacy:

In order to prevent this change from breaking local engineering builds
that still have these files in their build output directories, add a
couple of lines that will delete those *.txt files before making the
check for them.

  • WebKitLegacy.xcodeproj/project.pbxproj:

Tools:

  • Scripts/check-for-inappropriate-files-in-framework:
9:37 AM Changeset in webkit [269309] by don.olmstead@sony.com
  • 7 edits
    1 copy
    2 moves
    3 adds in trunk/Source/JavaScriptCore

[CMake] Add remote inspector platforms
https://bugs.webkit.org/show_bug.cgi?id=218451

Reviewed by Michael Catanzaro.

Add a CMake definition for each of the three remote inspector server backends to
remove duplication between the ports. Modify the port's CMake files to use the
shared definitions.

  • PlatformFTW.cmake:
  • PlatformGTK.cmake:
  • PlatformJSCOnly.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • inspector/remote/Cocoa.cmake: Added.
  • inspector/remote/GLib.cmake: Added.
  • inspector/remote/Socket.cmake: Added.
  • inspector/remote/SourcesCocoa.txt: Copied from Source/JavaScriptCore/SourcesWPE.txt.
  • inspector/remote/SourcesGLib.txt: Renamed from Source/JavaScriptCore/SourcesGTK.txt.
  • inspector/remote/SourcesSocket.txt: Renamed from Source/JavaScriptCore/SourcesWPE.txt.
9:20 AM Changeset in webkit [269308] by weinig@apple.com
  • 10 edits in trunk/Source/WebCore

Convert Settings.yaml to match the rough schema of the WebPreferences*.yaml files as a first step toward merging them
https://bugs.webkit.org/show_bug.cgi?id=218428

Reviewed by Darin Adler.

As the first step toward merging Settings.yaml into the WebPreferences*.yaml files
update Settings.yaml better match. This includes:

  • Fix key names start with capital letters.
  • A 'type' is now required (no more defaulting to bool)
  • 'initial' is renamed to defaultValue and gains the same per-frontend structure. This also means we can use PLATFORM() specific default values now rather than requiring the SettingsDefaults.h header, though this patch does not take advantage of that yet.
  • 'type' must now be 'bool', 'double', 'uint32_t' or 'String'. A new refinedType allows Settings to maintain the more explicit enum types / URL types.
  • Moves comments into the data structure to make it possible to keep them when manipulating the yaml programatically.
  • Use webcore prefix for webcore specific keys.
  • Replace single textAutosizingWindowSizeOverride preference which used an IntSize with TextAutosizingWindowSizeOverrideHeight and TextAutosizingWindowSizeOverrideWidth which are representable by one of the core types.
  • Scripts/GenerateSettings.rb:
  • Scripts/SettingsTemplates/InternalSettingsGenerated.cpp.erb:
  • Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb:
  • Scripts/SettingsTemplates/Settings.cpp.erb:
  • Scripts/SettingsTemplates/Settings.h.erb:
  • WebCore.xcodeproj/project.pbxproj:
  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::applyTextSizingIfNeeded):

  • page/Settings.yaml:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setTextAutosizingWindowSizeOverride):

9:14 AM Changeset in webkit [269307] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Adopt additional QuartzCore entitlement to reduce accessible endpoints
https://bugs.webkit.org/show_bug.cgi?id=218466
<rdar://problem/55790037>

Reviewed by Per Arne Vollan.

In iOS 14 we adopted a new entitlement that limited the set of XPC endpoints available
to QuartzCore clients. We should do the same on macOS to provide a similar level of
protection.

  • Scripts/process-entitlements.sh:
8:43 AM Changeset in webkit [269306] by youenn@apple.com
  • 15 edits in trunk/Source

Add support for WebRTC VP9 decoder in GPU process
https://bugs.webkit.org/show_bug.cgi?id=218445

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Allow creating a VTB VP9 decoder from WebCore.
VTB VP9 decoder currently needs key frame width and height information so we provide it as part of the decode callback.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.h:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(-[WK_RTCLocalVideoH264H265VP9Decoder initVP9DecoderWithCallback:]):
(-[WK_RTCLocalVideoH264H265VP9Decoder decodeData:size:timeStamp:]):
(-[WK_RTCLocalVideoH264H265VP9Decoder setWidth:height:]):
(-[WK_RTCLocalVideoH264H265VP9Decoder releaseDecoder]):
(webrtc::RemoteVideoDecoder::Decode):
(webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
(webrtc::createLocalH264Decoder):
(webrtc::createLocalH265Decoder):
(webrtc::createLocalVP9Decoder):
(webrtc::releaseLocalDecoder):
(webrtc::decodeFrame):
(webrtc::setDecoderFrameSize):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:

(-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
(-[RTCVideoDecoderVTBVP9 setWidth:height:]):

Source/WebKit:

Add support for VP9 decoder, send key frame size as IPC message specifically for VP9 hardware decoder.
If GPU process does not enable either SW or HW VP9 decoder, we fall back to in process VP9 decoder.

Manually tested by enabling WebRTC codec in GPU process.
Will be covered by existing VP9 tests in GPU process mode once canvas in GPUProcess is fully supported.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::setFrameSize):

  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::isVP9DecoderEnabled const):
(WebKit::GPUProcessConnection::isVPSWDecoderEnabled const):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::createVideoDecoder):
(WebKit::decodeVideoFrame):
(WebKit::LibWebRTCCodecs::setCallbacks):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::decodeFrame):
(WebKit::formatNameFromCodecType):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:

(WebKit::LibWebRTCCodecs::setVP9VTBSupport):
(WebKit::LibWebRTCCodecs::supportVP9VTB const):

8:21 AM Changeset in webkit [269305] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: increase default window size
https://bugs.webkit.org/show_bug.cgi?id=218513

Reviewed by Adrian Perez de Castro.

Because 800x600 is to small nowadays. Use 1024x768 instead.

  • MiniBrowser/gtk/BrowserWindow.c:
7:11 AM Changeset in webkit [269304] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Update config.json after tools update in r269235
https://bugs.webkit.org/show_bug.cgi?id=218512

Reviewed by Carlos Garcia Campos.

  • imported/w3c/config.json: Add missing value to https list.
6:49 AM Changeset in webkit [269303] by youenn@apple.com
  • 264 edits
    1 copy
    4 moves
    54 adds
    18 deletes in trunk/Source/ThirdParty/libwebrtc

Update WebRTC boringssl to M87
https://bugs.webkit.org/show_bug.cgi?id=218431

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/boringssl: Resynced.
  • libwebrtc.xcodeproj/project.pbxproj:
6:46 AM Changeset in webkit [269302] by clopez@igalia.com
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Move passing tests to the top of the TestExpectation files.

Some tests like http/tests/contentextensions/service-worker.https.html
are flaky and we have it marked as such at the GTK/WPE expectation file.
But the bots continue to complain about unexpected flakiness for this test.
This is because we have our section of tests passing at the bottom
of the TestExpectation files. And the layout test runner evaluates
the rules from top to bottom and it picks as the valid rule the last
one matching.
So when we unskip folders from the main TestExpectation file like
"http/tests/contentextensions [ Pass ]" we are also resetting the
value of all those tests to just Pass.
To avoid this problem move the expected passes to the top of the files.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
6:34 AM Changeset in webkit [269301] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] RenderText::absoluteQuads should use iterator
https://bugs.webkit.org/show_bug.cgi?id=218508

Reviewed by Zalan Bujtas.

  • rendering/InlineBox.h:

(WebCore::InlineBox::calculateBoundaries const): Deleted.

This function is SVG-specific.
To reduce confusion, make it non-virtual and available in SVG inline box classes only.

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

(WebCore::boundariesForTextRun):
(WebCore::ellipsisRectForTextRun):
(WebCore::collectAbsoluteQuads):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis const):
(WebCore::RenderText::absoluteQuads const):
(WebCore::RenderText::absoluteQuadsForRange const):
(WebCore::RenderText::collectSelectionRectsForLineBoxes):

Also inline selectionRectForRange/collectSelectionRectsForRange to the only caller here and make it use iterator.

(WebCore::collectAbsoluteQuadsForNonComplexPaths): Deleted.

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::ellipsisRectForBox): Deleted.
(WebCore::RenderTextLineBoxes::selectionRectForRange): Deleted.
(WebCore::RenderTextLineBoxes::collectSelectionRectsForRange): Deleted.
(WebCore::RenderTextLineBoxes::absoluteQuads const): Deleted.

  • rendering/RenderTextLineBoxes.h:

(): Deleted.

  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::floatLinesBoundingBox const):
(WebCore::RenderSVGInlineText::positionForPoint):
(WebCore::RenderSVGInlineText::firstTextBox const):

  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/SVGInlineFlowBox.cpp:

(WebCore::SVGInlineFlowBox::calculateBoundaries const):

  • rendering/svg/SVGInlineFlowBox.h:
  • rendering/svg/SVGInlineTextBox.h:
6:20 AM Changeset in webkit [269300] by youenn@apple.com
  • 77 edits
    9 adds
    1 delete in trunk/Source/ThirdParty/libwebrtc

Update WebRTC usrsctp to M87
https://bugs.webkit.org/show_bug.cgi?id=218433

Reviewed by Eric Carlson.

  • Source/third_party/usrsctp: Resynced.
6:16 AM Changeset in webkit [269299] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][IFC] Use "isConsideredEmpty" instead of "isVisuallyEmpty"
https://bugs.webkit.org/show_bug.cgi?id=218475

Reviewed by Antti Koivisto.

In certain cases the line may look visually empty, but still considered non-empty when computing the line box geometry.
Use a more precise term to indicated whether the line is empty.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::shouldInlineLevelBoxStretchLineBox const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::isRunConsideredEmpty const):
(WebCore::Layout::Line::isRunVisuallyNonEmpty const): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::isConsideredEmpty const):
(WebCore::Layout::Line::isVisuallyEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_isConsideredEmpty):
(WebCore::Layout::m_isLineVisuallyEmpty): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::isConsideredEmpty const):
(WebCore::Layout::LineBox::isLineVisuallyEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):

  • layout/inlineformatting/InlineLineBuilder.h:
6:14 AM Changeset in webkit [269298] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] showInlineTreeAndRuns should print the inline level boxes in visual order
https://bugs.webkit.org/show_bug.cgi?id=218478

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::nonRootInlineLevelBoxes const):
(WebCore::Layout::LineBox::rootInlineBox):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

6:09 AM Changeset in webkit [269297] by Diego Pino Garcia
  • 4 edits
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stale flaky crashes.

All the tests failures removed were flaky crashes that were consistently
passing in the last 4000 revisions.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/media/video-played-collapse-expected.txt: Removed.
  • platform/wpe/TestExpectations:
6:05 AM Changeset in webkit [269296] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Gardening fast/dom/Range/getBoundingClientRect.html failure

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
5:35 AM Changeset in webkit [269295] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore
REGRESSION (r269244?): ASSERTION FAILED: m_idHashSalt.isEmpty()
m_idHashSalt == salt in WebCore::Document::setDeviceIDHashSalt

https://bugs.webkit.org/show_bug.cgi?id=218458
<rdar://problem/70963733>

Reviewed by Eric Carlson.

Remove no longer needed code.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):

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

(WebCore::Document::hasHadCaptureMediaStreamTrack const):

4:55 AM Changeset in webkit [269294] by Adrian Perez de Castro
  • 5 edits in trunk/Source/WebCore

Non-unified build fixes, early November 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=218464

Unreviewed non-unified build fixes.

No new tests needed.

  • editing/VisibleUnits.cpp: Add missing InlineRunAndOffset.h header.
  • inspector/InspectorFrontendAPIDispatcher.cpp: Add missing InspectorController.h and

wtf/RunLoop.h headers.
(WebCore::InspectorFrontendAPIDispatcher::frontendGlobalObject): Add missing JSC::
namespace to usage of JSC::JSGlobalObject type.

  • layout/integration/LayoutIntegrationLineIterator.cpp: Add missing RenderBlockFlow.h

header.

  • rendering/RenderBlockFlow.cpp: Add missing LayoutIntegrationRunIterator.h header.
4:33 AM Changeset in webkit [269293] by youenn@apple.com
  • 21 edits in trunk/Source

Allow low latency H264 encoder in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=218442

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add a useLowLatency boolean in RTCVideoEncoderH264 and in encoder factory.
Encoder is set by the factory at creation time.
useLowLatency factory value is set at creation of the factory.

Clean up WebKitXX.h headers to do less include and move declarations in specific headers.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.h:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::videoDecoderTaskComplete):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.h:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(-[WK_RTCLocalVideoH264H265Encoder setLowLatency:]):
(webrtc::createWebKitEncoderFactory):
(webrtc::setLocalEncoderLowLatency):

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:

(-[RTCDefaultVideoEncoderFactory initWithH265:vp9:lowLatencyH264:]):
(-[RTCDefaultVideoEncoderFactory createEncoder:]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 setH264LowLatencyEncoderEnabled:]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

Source/WebCore:

Pass useLowLatency boolean when creating encoder factory.
Manually tested.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

Source/WebKit:

Pass useLowLatency boolean from WebProcess to GPUProcess.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::createEncoder):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::createEncoder):

3:50 AM Changeset in webkit [269292] by dino@apple.com
  • 2 edits
    5 adds in trunk/Source/ThirdParty/ANGLE

Add schemes for ANGLE to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=217546
rdar://69062082

Reviewed by Alex Christensen.

  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (dynamic).xcscheme: Added.
  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (static).xcscheme: Added.
  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE.xcscheme: Added.
3:23 AM Changeset in webkit [269291] by youenn@apple.com
  • 1 edit in trunk/Source/ThirdParty/libwebrtc/ChangeLog

Update WebRTC libyuv to M87
https://bugs.webkit.org/show_bug.cgi?id=218434

Reviewed by Eric Carlson.

  • Source/third_party/usrsctp: Resynced.
2:18 AM Changeset in webkit [269290] by Chris Lord
  • 2 edits in trunk/Source/WebKit

[GTK] Zooming causes page to scroll to top
https://bugs.webkit.org/show_bug.cgi?id=217955

Reviewed by Carlos Garcia Campos.

Don't reset page scale when setting zoom level on GLIB backend.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_set_zoom_level):

12:44 AM Changeset in webkit [269289] by youenn@apple.com
  • 1128 edits
    9 copies
    2 moves
    118 adds
    14 deletes in trunk/Source/ThirdParty/libwebrtc

Update WebRTC abseil to M87
https://bugs.webkit.org/show_bug.cgi?id=218432

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/abseil-cpp: Resynced.
12:41 AM Changeset in webkit [269288] by youenn@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

Update WebRTC opus to M87
https://bugs.webkit.org/show_bug.cgi?id=218435

Reviewed by Eric Carlson.

  • Source/third_party/opus: Resynced.
12:40 AM Changeset in webkit [269287] by Adrian Perez de Castro
  • 8 edits in trunk

[GTK][WPE] Cannot remove individual scripts/stylesheets using WebKitUserContentManager
https://bugs.webkit.org/show_bug.cgi?id=218403

Reviewed by Carlos Garcia Campos.

Add the missing WebKitUserContentManager functions which allow
removing a single script and style sheet from the manager. Given
that it is possible to remove a single content filter and message
handlers already, this make the API orthogonal for scripts and style
sheets as well.

Source/WebKit:

  • UIProcess/API/glib/WebKitUserContentManager.cpp:

(webkit_user_content_manager_remove_style_sheet): Added.
(webkit_user_content_manager_remove_script): Added.

  • UIProcess/API/gtk/WebKitUserContentManager.h: Add declarations for the new functions.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Ditto.
  • UIProcess/API/wpe/WebKitUserContentManager.h: Ditto.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt: Ditto.

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(testUserContentManagerInjectedStyleSheet): Add test for
webkit_user_content_manager_remove_style_sheet().
(testUserContentManagerInjectedScript): Add test for
webkit_user_content_manager_remove_script().

Nov 2, 2020:

10:56 PM Changeset in webkit [269286] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix GStreamerCommon.cpp debug category
https://bugs.webkit.org/show_bug.cgi?id=218392

Reviewed by Adrian Perez de Castro.

GStreamerCommon.cpp lacked a default debug category so debug from
that file was not appearing under the WebKit category but empty.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer):

8:20 PM Changeset in webkit [269285] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent()
https://bugs.webkit.org/show_bug.cgi?id=218474

Reviewed by Geoffrey Garen.

After r269227, event loop tasks can get executed even after the script execution context
has been stopped. This introduce a flaky crash under:
WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent()

This patch updates the function to not attempt to dispatch the event after the context
has been stopped.

No new tests, covered by the following tests that are flaky crashing in debug:

  • webgl/1.0.3/conformance/glsl/misc/non-ascii-comments.vert.html
  • webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index.html
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):

7:39 PM Changeset in webkit [269284] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r269214): ASSERTION FAILED: m_state == CLOSED in WebCore::EventSource::abortConnectionAttempt
https://bugs.webkit.org/show_bug.cgi?id=218457
<rdar://problem/70963581>

Reviewed by Geoffrey Garen.

When EventSource::didFail() gets called with an AccessControl error, it calls abortConnectionAttempt()
which cancels the load (by calling doExplicitLoadCancellation()). The expectation is that cancelling
the load will cause EventSource::didFail() to get called again, this time with a cancellation error,
which will set m_state to CLOSED. We're hitting the assertion because EventSource::didFail() is not
getting called with a cancellation error when the loader is a WorkerThreadableLoader and thus m_state
is not set to CLOSED as expected.

The reason for this is that MainThreadBridge::cancel() would return early and not call
ThreadableLoaderClientWrapper::didFail() if ThreadableLoaderClientWrapper::done() returns true.
ThreadableLoaderClientWrapper::done() returns true when ThreadableLoaderClientWrapper::didFail()
was already called previously, which is what's happening in our test. To address the issue,
MainThreadBridge::cancel() now calls ThreadableLoaderClientWrapper::didFail() no matter what.
This ensures consistency with the DocumentThreadableLoader.

No new tests, covered by existing test crashing on the bots.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):

7:21 PM Changeset in webkit [269283] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebKit

Remove some useless comments from .messages.in files
https://bugs.webkit.org/show_bug.cgi?id=218473

Reviewed by Tim Horton.

Remove comments that simply repeats what the code says.

  • GPUProcess/GPUProcess.messages.in:
  • NetworkProcess/NetworkProcess.messages.in:
  • WebProcess/WebProcess.messages.in:
6:09 PM Changeset in webkit [269282] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Input sanitization improvements for Payment Request demo
https://bugs.webkit.org/show_bug.cgi?id=218470

Reviewed by Andy Estes.

  • demos/payment-request/merchant-validation.php:
5:15 PM Changeset in webkit [269281] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r269227) imported/w3c/web-platform-tests/service-workers/service-worker/referrer-toplevel-script-fetch.https.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=218468
<rdar://problem/70969071>

Reviewed by Darin Adler.

Code in ServiceWorkerContainer::ready() was queueing an event loop task and then dereferencing
scriptExecutionContext() in the task. This is no longer safe after r269227 since tasks may
still be run after ActiveDOMObjects have been stopped. To address the issue, we need to
null check the scriptExecutionContext.

No new tests, covered by existing test.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ready):

4:59 PM Changeset in webkit [269280] by weinig@apple.com
  • 2 edits in trunk/Tools

Sort/cleanup preferences in resetWebPreferencesToConsistentValues
https://bugs.webkit.org/show_bug.cgi?id=218467

Reviewed by Darin Adler.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
Sort things.

4:40 PM Changeset in webkit [269279] by Devin Rousso
  • 4 edits in trunk/Source

guard UIScribbleInteraction class property observing behind a LOA check
https://bugs.webkit.org/show_bug.cgi?id=218463
<rdar://problem/70747966>

Reviewed by Tim Horton.

Some apps appear to swizzle -[NSObject addObserver:forKeyPath:options:context:] without
support for the fact that the object can be a class rather than an instance and therefore
crash. Use a LOA check to guard observing +[UIScribbleInteraction isPencilInputExpected]
so that this doesn't happen, but only until the apps update, at which point they can fix it.

Source/WebCore:

  • platform/cocoa/VersionChecks.h:

This appears to be the first instance of observing a class property, so add a new version
value for FirstThatObservesClassProperty.

Source/WebKit:

  • UIProcess/ios/WKStylusDeviceObserver.mm:

(-[WKStylusDeviceObserver start]):
(-[WKStylusDeviceObserver stop]):

4:05 PM Changeset in webkit [269278] by weinig@apple.com
  • 10 edits in trunk

[Testing] Match WebKitTestRunner and enable all "experimental" features in DumpRenderTree (cocoa)
https://bugs.webkit.org/show_bug.cgi?id=218447

Reviewed by Darin Adler.

Source/WebKitLegacy/mac:

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb:
  • WebView/WebFeature.m:

(-[WebFeature initWithKey:preferencesKey:name:details:defaultValue:hidden:]):
(-[WebFeature initWithKey:name:details:defaultValue:hidden:]): Deleted.

  • WebView/WebFeatureInternal.h:

Handle non-standard preference keys by ensure we initialize WebFeatures with the generated
preferenceKey accessor rather than trying to derive it from the key directly.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:

Add missing file, TestOptionsGeneratedWebKitLegacyKeyMapping.cpp.erb.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
(enableExperimentalFeatures): Deleted.
Match WebKitTestRunner and enable all experimental features by default. Disable a few of them to
keep the current behavior, but added FIXME to figure out why they are exposed but not enabled. Also
ensure a few preferences that are not experimental features, but were in the enableExperimentalFeatures
function remain set.

2:41 PM Changeset in webkit [269277] by Diego Pino Garcia
  • 2 edits
    1 copy
    2 deletes in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations.

Also remove stale WPE baseline for test imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-br-001.html

  • platform/glib/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt.
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt: Removed.
2:35 PM Changeset in webkit [269276] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, deflake imported/w3c/web-platform-tests/payment-request/show-method-optional-promise-rejects.https.html

Dump its console logging to stderr to address flakiness.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:24 PM Changeset in webkit [269275] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

REGRESSION (r269227): Crash in WebCore::WorkerOrWorkletGlobalScope::prepareForDestruction
https://bugs.webkit.org/show_bug.cgi?id=218455
<rdar://problem/70963191>

Reviewed by Geoffrey Garen.

Document::willBeRemovedFromFrame() may have the same PaintWorkletGlobalScope instance
more than once in its m_paintWorkletGlobalScopes HashMap, under different keys. As a
result, it may call PaintWorkletGlobalScope::prepareForDestruction() more than once
on the same instance. This was causing issues because
EventLoopTaskGroup::markAsReadyToStop(), when called the second time, would move the
state from Stopped and back to ReadyToStop, which is unexpected.

To address the issue, EventLoopTaskGroup::markAsReadyToStop() now returns early if
the state is "Stopped". Also, I added a boolean check in PaintWorkletGlobalScope's
prepareForDestruction() to make sure we only do the work once per instance.

No new tests, covered by existing tests.

  • dom/EventLoop.h:

(WebCore::EventLoopTaskGroup::markAsReadyToStop):

  • worklets/PaintWorkletGlobalScope.h:
2:07 PM Changeset in webkit [269274] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r269245.

3 LFC tests asserting in
WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree

Reverted changeset:

"[LFC][IFC] Empty lines stay empty even when the imaginary
strut is present"
https://bugs.webkit.org/show_bug.cgi?id=218420
https://trac.webkit.org/changeset/269245

1:53 PM Changeset in webkit [269273] by James Savage
  • 2 edits in trunk/Source/WebKit

Changes to SWIFT_MODULE_ONLY_ARCHS
https://bugs.webkit.org/show_bug.cgi?id=218404

Reviewed by Tim Horton.

  • SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig: Simplify how

we specify these options.

1:43 PM Changeset in webkit [269272] by Antti Koivisto
  • 11 edits in trunk

[LFC][Integration] RenderText::absoluteQuadsForRange should use iterator
https://bugs.webkit.org/show_bug.cgi?id=218444

Reviewed by Zalan Bujtas.

Source/WebCore:

Add the required iterator support and convert absoluteQuadsForRange to use it.
This eliminates ensureLineBoxes from two places.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::isSelectable const):
(WebCore::LayoutIntegration::PathTextRun::selectionRect const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::isSelectable const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectionRect const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::offsetForPosition const):
(WebCore::LayoutIntegration::RunIteratorModernPath::isSelectable const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):
(WebCore::LayoutIntegration::RunIteratorModernPath::clampedOffset const):
(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteRectsForRange const):
(WebCore::localQuadForTextRun):
(WebCore::RenderText::absoluteQuadsForRange const):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::localQuadForTextBox): Deleted.
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const): Deleted.
(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Deleted.

  • rendering/RenderTextLineBoxes.h:

LayoutTests:

  • fast/dom/Range/getBoundingClientRect-expected.txt:
  • fast/dom/Range/getBoundingClientRect.html:

On legacy path <br> y position is miscomputed affecting getBoundingClientRect().
Update the test to match the new behavior. Results now match Firefox and Chrome.

1:21 PM Changeset in webkit [269271] by Chris Dumez
  • 5 edits in trunk

[ macOS ] webaudio/OfflineAudioContext/onstatechange.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217543
<rdar://problem/70160122>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests, unskipped existing test.

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):
After offline rendering on the audio thread and we go back to the main thread, make sure we queue a task of the
event loop to fire the statechange and completion events. We were previously failing to do so and that meant
that the ordering with other main thread events (which were queued on the event loop) was not always correct.

LayoutTests:

  • platform/mac/TestExpectations:

Unskip test that should no longer be flaky.

  • webaudio/OfflineAudioContext/onstatechange-expected.txt:

Rebaseline test now that the order of the promise resolution and the statechange event have changed.
Note that the new ordering is consistent with both Chrome and Firefox.

1:17 PM Changeset in webkit [269270] by Diego Pino Garcia
  • 1 edit
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove outdated baselines no longer necessary after r269104.

  • platform/wpe/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Removed.
  • platform/wpe/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Removed.
  • platform/wpe/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.wav: Removed.
  • platform/wpe/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Removed.
  • platform/wpe/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.wav: Removed.
  • platform/wpe/webaudio/codec-tests/wav/24bit-44khz-expected.wav: Removed.
12:55 PM Changeset in webkit [269269] by ddkilzer@apple.com
  • 6 edits in trunk

Sort Xcode project file

Source/bmalloc:

  • bmalloc.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:

Tools:

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
12:31 PM Changeset in webkit [269268] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections.html on mac-arm64 only.

Sadly, there is no way to land a mac-arm64 specific baseline yet so we have to mark the test as failing on this platform, even though it
is actually passing (with slightly different values).

  • platform/mac/TestExpectations:
12:17 PM Changeset in webkit [269267] by Alan Coon
  • 1 copy in tags/Safari-611.1.4.0.1

Tag Safari-611.1.4.0.1.

12:14 PM Changeset in webkit [269266] by Alan Coon
  • 2 edits in branches/safari-611.1.4.0-branch/Source/WebCore

Cherry-pick r269206. rdar://problem/70730895

Further lessen reliance on VPATH in WebCore/DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=218378
<rdar://problem/70730895>

Reviewed by Darin Adler.

Bug 217696 updated WebCore/DerivedSources.make to rely less on VPATH
and make more use of explicit partial or full paths. The solution
there, however, did not go far enough, and led to failures when
building WebKit for Safari Tech Preview and using old SDKs that
contains files that have since been "upstreamed" into WebKit. Address
this problem by taking further control of how DerivedSources.make
finds needed files instead of using the VPATH mechanism.

No new tests -- this is a build fix.

  • DerivedSources.make:

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

12:07 PM Changeset in webkit [269265] by Alan Coon
  • 8 edits in branches/safari-611.1.4.0-branch/Source

Versioning.

WebKit-7611.1.4.0.1

11:56 AM Changeset in webkit [269264] by Diego Pino Garcia
  • 6 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines of several tests failing.

  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt: Needs update after r269224.
  • platform/gtk/editing/inserting/paragraph-separator-in-table-1-expected.txt: Needs update after r269214.
  • platform/gtk/editing/inserting/paragraph-separator-in-table-1-expected.png: Needs update after r269214.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt: Needs update after r269238.
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt: Needs update after r269238.
11:46 AM Changeset in webkit [269263] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[iOS] Link Contacts.framework during build
https://bugs.webkit.org/show_bug.cgi?id=218289
<rdar://problem/70770410>

Reviewed by Andy Estes.

Contacts.framework is currrently soft linked in PaymentAuthorizationPresenter.
Soft linking is generally discouraged, since it requires running the linker
at runtime, leading to an unwanted performance cost. By normally linking
the framework, the linkage is declared at build time, which enables running
the linker at build/update/install time and avoiding the runtime cost.

Unfortunately, we still have to soft link the framework on macOS, to avoid
introducing a dependency cycle. Upward linking is not an option, since the
Contacts framework does not implement InstallAPI.

The SOFT_LINK_FRAMEWORK macro has been kept in PaymentAuthorizationPresenter
to avoid introducing additional #ifs. This should be fine to keep on iOS,
since the framework will already loaded in the address space, and the call
to dlopen() should be much less expensive.

  • Configurations/WebKit.xcconfig:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:
11:45 AM Changeset in webkit [269262] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

[LFC] Do not [ ImageOnlyFailure ] all the tests in fast/layoutformattingcontext
https://bugs.webkit.org/show_bug.cgi?id=218446

Many tests pass now.

Reviewed by Simon Fraser.

11:21 AM Changeset in webkit [269261] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Only upload to S3 when running on ews-build.webkit.org (follow-up fix for unit-test).
https://bugs.webkit.org/show_bug.cgi?id=218439

Unreviewed follow-up fix.

  • CISupport/ews-build/steps_unittest.py: Set CURRENT_HOSTNAME to EWS_BUILD_HOSTNAME during TestTransferToS3 unit-tests,

restore it in tearDown so that it doesn't affect any other unit-test.

11:20 AM Changeset in webkit [269260] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r268199. rdar://problem/70952726

Crash under WebKit::WebProcessCache::clear()
https://bugs.webkit.org/show_bug.cgi?id=217480

Reviewed by Geoffrey Garen.

Source/WebKit:

Protect |process| in the responsiveness check lambda in WebProcessCache::addProcessIfPossible().
If we fail to do so and WebProcessCache::clear() gets called while the responsiveness check is
pending, the WebProcessProxy destructor may get called while clear() clears m_pendingAddRequests,
which would resolve the responsiveness check with responsive=false, and cause the lambda to
try and remove the entry from m_pendingAddRequests (while clear() is clearing it).

  • UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::addProcessIfPossible):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

11:20 AM Changeset in webkit [269259] by Alan Coon
  • 1 edit in branches/safari-610-branch/Source/WebCore/platform/audio/mac/AudioSampleDataSource.mm

Apply patch. rdar://problem/70952670

Cherry-pick part of r268577 to branch.

11:20 AM Changeset in webkit [269258] by Alan Coon
  • 1 edit
    2 adds in branches/safari-610-branch

Apply patch. rdar://problem/70733358

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

REGRESSION (r268897): [macOS WK1] inspector/cpu-profiler/threads.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=218253
<rdar://problem/70732755>

Reviewed by Geoffrey Garen.

Check the thread name to identify the 2 worker threads. This is needed so that worklet thread are
not identified as worker threads after r268897.

  • inspector/cpu-profiler/threads.html:
11:01 AM Changeset in webkit [269256] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under ProcessThrottler::setAssertionType()
https://bugs.webkit.org/show_bug.cgi?id=218448
<rdar://problem/67419221>

Reviewed by Geoffrey Garen.

A ProcessThrottler object is owned by its associated AuxiliaryProcessProxy. The crash was happening
in ProcessThrottler::setAssertionType(), we would replace m_assertion with a new "Suspended"
assertion and then crash on the next line when using m_assertion. The reason we crash is that
when we replaced m_assertion with a new assertion, the destruction of the previous assertion
caused the UIProcess's background task to get released (because this was the last non-suspended
process assertion). When we release the UIProcess' background task, we call
WebProcessPool::notifyProcessPoolsApplicationIsAboutToSuspend(), which destroys non-critical
WebProcesses (e.g. WebProcesses in the back/forward cache), which in turns destroy their
ProcessThrottler. As a result, when replacing m_assertion, the ProcessAssertion may get
destroyed, which is why we would crash on the next line when trying to use m_assertion.

To address the issue, we now release the UIProcess's background task asynchronously when
releasing the last non-suspended ProcessAssertion, making sure we still need to release
the assertion beforehand. This has 2 benefits:

  • The ProcessThrottler can no longer get destroyed synchronously when releasing its ProcessAssertion.
  • In the case where the ProcessThrottler replaces a foreground assertion with a background assertion (or vice-versa) and this is the last non-suspended assertion, this avoids unnecessarily releasing and retaking the UIProcess's background task. This also avoids killing non-critical processes unnecessarily.
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):

11:01 AM Changeset in webkit [269255] by Alan Coon
  • 1 copy in branches/safari-611.1.4.0-branch

New branch.

10:59 AM Changeset in webkit [269254] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[macOS] Remove unneeded shmem access to ColorSync
https://bugs.webkit.org/show_bug.cgi?id=218395
<rdar://problem/70354916>

Reviewed by Per Arne Vollan.

ColorSync on macOS has not used shared memory since Mac OS X 10.7, and our sandbox
should not have this access. Removing this unused shared memory capability.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:53 AM Changeset in webkit [269253] by Darin Adler
  • 22 edits
    6 adds in trunk

Start removing functions that implicitly use composed tree
https://bugs.webkit.org/show_bug.cgi?id=218424

Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/dom/rangeContainsNode.html

fast/dom/rangeContainsRange.html
fast/dom/treeOrder.html

Ryosuke pointed out that most clients should not be using the composed tree, so this
is a step in work to make the use of the composed tree explicit. After that we can
more easily find and correct call sites where use of the composed tree is incorrect.

Likely that most or all cases of treeOrder<ComposedTree> can be changed to just
treeOrder and contains<ComposedTree> to just contains; will do those in follow-ups.

  • Modules/highlight/Highlight.cpp:

(WebCore::repaintRange): Simplified code to use boundary points, and changed to use
treeOrder<ComposedTree>.

  • dom/AbstractRange.h: Export makeSimpleRange so it can be used in Internals.
  • dom/AbstractRange.idl: Export the class so it can be used in Internals.
  • dom/Node.cpp:

(WebCore::parent<ShadowIncludingTree>): Added.
(WebCore::treeOrderForTesting): Added.
(WebCore::documentOrder): Deleted.

  • dom/Node.h: Updated for the above.
  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroup::members const): Use treeOrder<ComposedTree>.

  • dom/SimpleRange.cpp:

(WebCore::contains): Removed a couple contains functions that implicitly use
composed tree.
(WebCore::containsForTesting): Added.

  • dom/SimpleRange.h: Updated for the above. Should also make contains<Tree> the

default and remove the <Tree> at all call sites, but it's safer to do that in a
separate patch after this is landed and builds on all platforms.

  • editing/Editing.cpp:

(WebCore::isNodeVisiblyContainedWithin): Use contains<ComposedTree>.

  • page/DragController.cpp:

(WebCore::DragController::draggableElement const): Ditto.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent): Ditto. Note that this has a call to
isDescendantOf right next to it, which does not use the composed tree.

  • page/Page.cpp:

(WebCore::Page::findTextMatches): Use treeOrder<ComposedTree>.
(WebCore::replaceRanges): Ditto.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
Use contains<ComposedTree>.

  • testing/Internals.cpp:

(WebCore::string): Added.
(WebCore::convertType): Added.
(WebCore::Internals::treeOrder): Added.
(WebCore::Internals::rangeContainsNode): Added.
(WebCore::Internals::rangeContainsRange): Added.

  • testing/Internals.h: Updated for added functions above.
  • testing/Internals.idl: Ditto. These functions were tested in a

TestWebKitAPI test, but we plan to move those types of tests to
internals-based tests instead.

Source/WebKit:

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Use contains<ComposedTree>.

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Moved the tests of documentOrder

for two nodes and contains for range/range or range/node into internals-based tests
in the LayoutTests directory. Eventually we'll move the rest of these tests, too.

LayoutTests:

  • fast/dom/rangeContainsNode-expected.txt: Added.
  • fast/dom/rangeContainsNode.html: Added.
  • fast/dom/rangeContainsRange-expected.txt: Added.
  • fast/dom/rangeContainsRange.html: Added.
  • fast/dom/treeOrder-expected.txt: Added.
  • fast/dom/treeOrder.html: Added.

These tests were formerly part of TestWebKitAPI, although treeOrder was named documentOrder.
Moving to internals-style tests at Ryosuke's suggestion since these are not something exposed
as API or even SPI.

10:35 AM Changeset in webkit [269252] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove compiler warning in LLIntData.cpp
https://bugs.webkit.org/show_bug.cgi?id=218443

Patch by Xan Lopez <Xan Lopez> on 2020-11-02
Reviewed by Mark Lam.

Fix compiler warning by casting a scoped enum to its underlying
type. Not allowing implicit type conversions is the whole point of
scoped enums.

  • interpreter/CallFrame.h: remove underlying type specifier, since

we are using the default anyway ('int').

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions): cast the scoped enum to its
underlying type.

10:11 AM Changeset in webkit [269251] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Fix link error with WebKit.framework

Undefined symbols for architecture x86_64:

"JSC::GenericTypedArrayView<JSC::Uint8Adaptor>::create(WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)", referenced from:

WebKit::convertToUint8Array(IPC::SharedBufferCopy&&) in UnifiedSource7.o

ld: symbol(s) not found for architecture x86_64

  • GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:
  • Include <JavaScriptCore/GenericTypedArrayViewInlines.h> to fix linker error with some builds of WebKit.
  • See also WebProcess/GPU/media/RemoteLegacyCDMSession.cpp.
9:56 AM Changeset in webkit [269250] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.3.7

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

Don't fail the build on S3 upload failure
https://bugs.webkit.org/show_bug.cgi?id=218438

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-02
Reviewed by Aakash Jain.

This allows buildbots to keep going even when S3 is down. Using
S3 is not strictly necessary, as the built product can also be
downloaded from the buildbot server.

Patch-by: aakash_jain@apple.com

  • CISupport/ews-build/steps.py:

(CompileWebKit.evaluateCommand):
(TransferToS3):
(TransferToS3.finished):

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

Only upload to S3 when running on ews-build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=218439

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-02
Reviewed by Aakash Jain.

Uploading to S3 is inconvenient for testing instances, so only run this
step if we're executing on ews-build.webkit.org. Otherwise, transfer the
file through the buildbot server.

Patch-by: aakash_jain@apple.com

  • CISupport/ews-build/steps.py:

(TransferToS3.doStepIf):

7:54 AM Changeset in webkit [269247] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests/imported/w3c

Update baselines of tests failing after WPT resync

Unreviewed test gardening.

These tests are failing in several platforms (iOS, Mac, GTK, WPE, ...) with the same diff. Thus, the general expectations file is updated.

  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid-expected.txt: Needs update after r269187.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt: Needs update after r269235.
6:59 AM Changeset in webkit [269246] by commit-queue@webkit.org
  • 9 edits in trunk

[GLIB] REGRESSION(r269144) imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-scrollMargin.html is failing
https://bugs.webkit.org/show_bug.cgi?id=218358

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-02
Reviewed by Simon Fraser.

Source/WebCore:

Finish some missing pieces of exposing scroll-margin when ENABLE_SCROLL_SNAP is off.
This allows non-scroll-snap ports to use scroll-margin.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Move scroll margin code
out of the ENABLE_SCROLL_SNAP block.

  • css/CSSProperties.json: Remove ENABLE_SCROLL_SNAP requirement for scroll-margin properties.
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const): Move scroll-margin code out of ENABLE_SCROLL_MARGIN block.
(WebCore::StyleProperties::asText const): Ditto.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue): Ditto.
(WebCore::CSSPropertyParser::parseShorthand): Ditto.

LayoutTests:

  • platform/glib/TestExpectations: Mark test as passing.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Update expectations.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Ditto.
6:12 AM Changeset in webkit [269245] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Empty lines stay empty even when the imaginary strut is present
https://bugs.webkit.org/show_bug.cgi?id=218420

Reviewed by Antti Koivisto.

Use the more correct runs.isEmpty() check to decide whether the root inline box should stay empty.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

12:35 AM Changeset in webkit [269244] by youenn@apple.com
  • 19 edits
    1 add in trunk/Source

Stop sending origins from WebProcess to UIProcess for getUserMedia requests
https://bugs.webkit.org/show_bug.cgi?id=218192

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, move UserMediaRequestIdentifier in its own header.
Covered by existing tests.

  • Headers.cmake:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::userMediaDocumentOrigin const): Deleted.
(WebCore::UserMediaRequest::topLevelDocumentOrigin const): Deleted.

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/mediastream/UserMediaRequestIdentifier.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Pass directly a UserMediaRequestIdentifier through IPC.
Stop passing origins from IPC and instead compute them from UIProcess side.

  • Scripts/webkit/messages.py:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::userMediaID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
(WebKit::WebPageProxy::enumerateMediaDevicesForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted):
(WebKit::WebPage::userMediaAccessWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:32 AM Changeset in webkit [269243] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Set vpcC box for hardware WebRTC VP9 decoder
https://bugs.webkit.org/show_bug.cgi?id=218337

Reviewed by Eric Carlson.

Hardware VP9 decoder code path requires vpcC box information.
Provide it as part of the video format.
Initialize the vpcC box with a zeroed buffer.

Make sure WebKitVP9Decoder is able to handle dynamically 10 bits or 8 bits frames.

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder):
(webrtc::startVP9DecoderSession):
(webrtc::WebKitVP9DecoderReceiver::initializeFromFormatDescription):
(webrtc::WebKitVP9DecoderReceiver::pixelBufferPool):
(webrtc::WebKitVP9DecoderReceiver::Decoded):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:

(-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):

Nov 1, 2020:

7:50 PM Changeset in webkit [269242] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r252689): box-shadow with inset and negative spread renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=209930

Patch by Mason Xiao <me@masonx.ca> on 2020-11-01
Reviewed by Simon Fraser.

Source/WebCore:

r252689 introduced a typo when refactoring the calculation of xOffset.
Instead of subtracting the shadowSpread, it was added.
This caused issues when the shadowSpread was greater than approximately half of the enclosing element's width.

Test: fast/box-shadow/negative-inset-box-shadow.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBoxShadow): Change sign of shadowSpread in xOffset calculation for inset

LayoutTests:

  • fast/box-shadow/negative-inset-box-shadow-expected.html: Added.
  • fast/box-shadow/negative-inset-box-shadow.html: Added.
6:49 PM Changeset in webkit [269241] by Diego Pino Garcia
  • 3 edits
    3 adds in trunk/LayoutTests

Emit baselines for WPT css-sizing/aspect-ratio/quirks-mode* tests after resync in r269187

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001-expected.txt: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002-expected.txt: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003-expected.txt: Added.

LayoutTests:

5:43 PM Changeset in webkit [269240] by Diego Pino Garcia
  • 3 edits
    2 copies
    1 delete in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baselines of WPT test 'html/dom/idlharness' after r269214.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
5:39 PM Changeset in webkit [269239] by Simon Fraser
  • 7 edits
    1 copy in trunk/Source/WebCore

[LFC Display] Pass deviceScaleFactor around with GraphicsContext at paint time
https://bugs.webkit.org/show_bug.cgi?id=218423

Reviewed by Zalan Bujtas.

Border painting code will need to use deviceScaleFactor at paint time, so make a small
struct that bundles GraphicsContext& and deviceScaleFactor together, and pass that to
paint functions.

  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayLayerController.cpp:

(WebCore::Display::LayerController::RootLayerClient::paintContents):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintFillLayer):
(WebCore::Display::BoxPainter::paintBackgroundImages):
(WebCore::Display::BoxPainter::paintBoxDecorations):
(WebCore::Display::BoxPainter::paintBoxContent):
(WebCore::Display::BoxPainter::paintBox):

  • display/css/DisplayBoxPainter.h:
  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::recursivePaintDescendants):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::paintTree):

  • display/css/DisplayCSSPainter.h:
  • display/css/DisplayPaintingContext.h: Copied from Source/WebCore/display/css/DisplayBoxPainter.h.
2:03 PM Changeset in webkit [269238] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LegacyInlineLayout] Remove collapsible trailing whitespace when it is followed by a hard line break
https://bugs.webkit.org/show_bug.cgi?id=216902
<rdar://problem/69812136>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt:

Source/WebCore:

Ignore collapsible trailing whitespace followed by hard linebreak while computing the preferred width.
Such content is input to the trimming logic, and it should be handled accordingly.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

LayoutTests:

  • fast/text/trimmable-whitespace-followed-by-br-expected.html: Added.
  • fast/text/trimmable-whitespace-followed-by-br.html: Added.
12:14 PM Changeset in webkit [269237] by commit-queue@webkit.org
  • 7 edits in trunk

background-size should not accept negative values
https://bugs.webkit.org/show_bug.cgi?id=183990

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-11-01
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

We now reject negative values for background-size. Update newly
passing test expectations to reflect this.

  • web-platform-tests/css/css-backgrounds/parsing/background-size-computed-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-size-invalid-expected.txt:

Source/WebCore:

Reject negative background-size length-percentage values,
as these are explicitly disallowed by the spec.

https://www.w3.org/TR/2017/CR-css-backgrounds-3-20171017/#the-background-size

Change is covered by existing tests that now pass.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundSize): Reject negative length-percentage
values as is mandated by the spec.

LayoutTests:

We now reject negative background-size values. Update newly passing
test expectations to reflect this.

12:09 PM Changeset in webkit [269236] by weinig@apple.com
  • 345 edits in trunk

Remove remaining alternative preference setting mechanisms from LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=218417

Reviewed by Simon Fraser.

Source/WebKit:

Remove now unused bundle SPI that was only used by the WebKitTestRuner.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleOverrideBoolPreferenceForTestRunner): Deleted.
(WKBundleSetAllowUniversalAccessFromFileURLs): Deleted.
(WKBundleSetAllowFileAccessFromFileURLs): Deleted.
(WKBundleSetAllowStorageAccessFromFileURLS): Deleted.
(WKBundleSetMinimumLogicalFontSize): Deleted.
(WKBundleSetFrameFlatteningEnabled): Deleted.
(WKBundleSetJavaScriptCanAccessClipboard): Deleted.
(WKBundleSetPopupBlockingEnabled): Deleted.
(WKBundleSetAuthorAndUserStylesEnabled): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addOriginAccessAllowListEntry):
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Deleted.
(WebKit::InjectedBundle::setAllowUniversalAccessFromFileURLs): Deleted.
(WebKit::InjectedBundle::setAllowFileAccessFromFileURLs): Deleted.
(WebKit::InjectedBundle::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(WebKit::InjectedBundle::setMinimumLogicalFontSize): Deleted.
(WebKit::InjectedBundle::setFrameFlatteningEnabled): Deleted.
(WebKit::InjectedBundle::setAsyncFrameScrollingEnabled): Deleted.
(WebKit::InjectedBundle::setJavaScriptCanAccessClipboard): Deleted.
(WebKit::InjectedBundle::setPopupBlockingEnabled): Deleted.
(WebKit::InjectedBundle::setAuthorAndUserStylesEnabled): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:

Source/WebKitLegacy/win:

  • WebPreferenceKeysPrivate.h:

Update key to match cocoa WebKitLegacy for shared use by DumpRenderTree.

Tools:

Remove various one off solutions for setting preferences in WebKitTestRunner and DumpRenderTree
keeping only test header commands (which can be set without JS and can be in place before the
inital load) and internals.settings, which can be used when dynamic changing is required.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::supportedUInt32WebPreferenceFeatures):
(WTR::TestOptions::defaults):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/TestRunner.cpp:

(setPagePausedCallback):
(TestRunner::staticFunctions):
(setAuthorAndUserStylesEnabledCallback): Deleted.
(setJavaScriptCanAccessClipboardCallback): Deleted.
(setXSSAuditorEnabledCallback): Deleted.
(setAllowUniversalAccessFromFileURLsCallback): Deleted.
(setAllowFileAccessFromFileURLsCallback): Deleted.
(setNeedsStorageAccessFromFileURLsQuirkCallback): Deleted.
(setTelephoneNumberParsingEnabledCallback): Deleted.
(setPopupBlockingEnabledCallback): Deleted.
(setPluginsEnabledCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
(webPreferenceFeatureValue):
(setWebPreferencesForTestOptions):
(runTest):
(boolWebPreferenceFeatureValue): Deleted.
(shouldEnableDeveloperExtras): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(TestRunner::setXSSAuditorEnabled): Deleted.
(TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(TestRunner::setPopupBlockingEnabled): Deleted.
(TestRunner::setPluginsEnabled): Deleted.
(TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(TestRunner::setTelephoneNumberParsingEnabled): Deleted.
(TestRunner::setDeveloperExtrasEnabled): Deleted.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
(webPreferenceFeatureValue):
(setWebPreferencesForTestOptions):
(runTest):
(shouldEnableDeveloperExtras): Deleted.
(boolWebPreferenceFeatureValue): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(TestRunner::setXSSAuditorEnabled): Deleted.
(TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(TestRunner::setPopupBlockingEnabled): Deleted.
(TestRunner::setPluginsEnabled): Deleted.
(TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(TestRunner::setDeveloperExtrasEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::overridePreference): Deleted.
(WTR::TestRunner::setXSSAuditorEnabled): Deleted.
(WTR::TestRunner::setMediaDevicesEnabled): Deleted.
(WTR::TestRunner::setWebRTCMDNSICECandidatesEnabled): Deleted.
(WTR::TestRunner::setWebAPIStatisticsEnabled): Deleted.
(WTR::TestRunner::setModernMediaControlsEnabled): Deleted.
(WTR::TestRunner::setWebGL2Enabled): Deleted.
(WTR::TestRunner::setWritableStreamAPIEnabled): Deleted.
(WTR::TestRunner::setTransformStreamAPIEnabled): Deleted.
(WTR::TestRunner::setReadableByteStreamAPIEnabled): Deleted.
(WTR::TestRunner::setEncryptedMediaAPIEnabled): Deleted.
(WTR::TestRunner::setPictureInPictureAPIEnabled): Deleted.
(WTR::TestRunner::setGenericCueAPIEnabled): Deleted.
(WTR::TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(WTR::TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(WTR::TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(WTR::TestRunner::setPluginsEnabled): Deleted.
(WTR::TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(WTR::TestRunner::setPopupBlockingEnabled): Deleted.
(WTR::TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(WTR::TestRunner::setOffscreenCanvasEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Update tests to only rely on test header commands and internals.settings for
changing preferences to simplify test writing.

  • editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html:
  • editing/async-clipboard/clipboard-read-text-from-platform.html:
  • editing/async-clipboard/clipboard-read-text-same-origin.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler-in-subframe.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler.html:
  • editing/async-clipboard/clipboard-write-text-requires-user-gesture.html:
  • editing/execCommand/clipboard-access-with-user-gesture.html:
  • editing/execCommand/clipboard-access.html:
  • fast/css/disabled-author-styles.html:
  • fast/css/object-fit/object-fit-embed-expected.html:
  • fast/css/object-fit/object-fit-embed.html:
  • fast/css/object-position/object-position-embed.html:
  • fast/events/before-unload-navigate-different-window.html:
  • fast/events/before-unload-open-window.html:
  • fast/events/ios/submit-form-target-blank-using-return-key.html:
  • fast/events/open-window-from-another-frame.html:
  • fast/events/popup-allowed-from-gesture-initiated-event.html:
  • fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
  • fast/events/popup-blocked-from-fake-button-click.html:
  • fast/events/popup-blocked-from-fake-focus.html:
  • fast/events/popup-blocked-from-fake-user-gesture.html:
  • fast/events/popup-blocked-from-history-reload.html:
  • fast/events/popup-blocked-from-iframe-script.html:
  • fast/events/popup-blocked-from-iframe-src.html:
  • fast/events/popup-blocked-from-mousemove.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
  • fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocked-from-window-open.html:
  • fast/events/popup-blocked-to-post-blank.html:
  • fast/events/popup-blocking-click-in-iframe.html:
  • fast/events/popup-blocking-timers1.html:
  • fast/events/popup-blocking-timers2.html:
  • fast/events/popup-blocking-timers3.html:
  • fast/events/popup-blocking-timers5.html:
  • fast/events/popup-blocking-timers6.html:
  • fast/events/popup-when-select-change.html:
  • fast/files/file-reader-file-url.html:
  • fast/files/file-reader-sandbox-iframe.html:
  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/forms/formtarget-attribute-button-html.html:
  • fast/forms/formtarget-attribute-input-2.html:
  • fast/forms/formtarget-attribute-input-html.html:
  • fast/forms/xss-auditor-doesnt-crash-on-post-submit.html:
  • fast/frames/resources/no-file-access-frame-1.html:
  • fast/frames/xss-auditor-handles-file-urls.html:
  • fast/images/embed-image.html:
  • fast/images/move-image-to-new-document.html:
  • fast/loader/url-selected-user-gesture.html:
  • fast/replaced/border-radius-clip-content-edge.html:
  • fast/replaced/outline-replaced-elements.html:
  • fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank.html:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access.html:
  • fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html:
  • fullscreen/full-screen-request-rejected.html:
  • fullscreen/full-screen-request-removed.html:
  • fullscreen/full-screen-restrictions.html:
  • http/tests/cookies/resources/cookie-utilities.js:
  • http/tests/dom/window-open-about-blank-and-access-document.html:
  • http/tests/dom/window-open-about-uppercase-blank-and-access-document.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • http/tests/download/convert-cached-load-to-download.html:
  • http/tests/security/popup-blocked-from-fake-event.html:
  • http/tests/security/popup-blocked-from-window-open.html:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location2.html:
  • http/tests/security/xssAuditor/base-href-control-char.html:
  • http/tests/security/xssAuditor/base-href-direct.html:
  • http/tests/security/xssAuditor/base-href-null-char.html:
  • http/tests/security/xssAuditor/base-href-safe.html:
  • http/tests/security/xssAuditor/base-href-safe2.html:
  • http/tests/security/xssAuditor/base-href-safe3.html:
  • http/tests/security/xssAuditor/base-href-scheme-relative.html:
  • http/tests/security/xssAuditor/base-href.html:
  • http/tests/security/xssAuditor/block-does-not-leak-location.html:
  • http/tests/security/xssAuditor/block-does-not-leak-referrer.html:
  • http/tests/security/xssAuditor/block-does-not-leak-that-page-was-blocked-using-empty-data-url.html:
  • http/tests/security/xssAuditor/cached-frame.html:
  • http/tests/security/xssAuditor/cookie-injection.html:
  • http/tests/security/xssAuditor/crash-while-loading-tag-with-pause.html:
  • http/tests/security/xssAuditor/data-urls-work.html:
  • http/tests/security/xssAuditor/dom-write-URL.html:
  • http/tests/security/xssAuditor/dom-write-innerHTML.html:
  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html:
  • http/tests/security/xssAuditor/dom-write-location-inline-event.html:
  • http/tests/security/xssAuditor/dom-write-location-javascript-URL.html:
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html:
  • http/tests/security/xssAuditor/dom-write-location.html:
  • http/tests/security/xssAuditor/embed-tag-code-attribute-2.html:
  • http/tests/security/xssAuditor/embed-tag-code-attribute.html:
  • http/tests/security/xssAuditor/embed-tag-control-char.html:
  • http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html:
  • http/tests/security/xssAuditor/embed-tag-javascript-url.html:
  • http/tests/security/xssAuditor/embed-tag-null-char.html:
  • http/tests/security/xssAuditor/embed-tag.html:
  • http/tests/security/xssAuditor/faux-script1.html:
  • http/tests/security/xssAuditor/faux-script2.html:
  • http/tests/security/xssAuditor/faux-script3.html:
  • http/tests/security/xssAuditor/form-action.html:
  • http/tests/security/xssAuditor/formaction-on-button.html:
  • http/tests/security/xssAuditor/formaction-on-input.html:
  • http/tests/security/xssAuditor/frameset-injection.html:
  • http/tests/security/xssAuditor/full-block-base-href.html:
  • http/tests/security/xssAuditor/full-block-get-from-iframe.html:
  • http/tests/security/xssAuditor/full-block-iframe-javascript-url.html:
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.php:
  • http/tests/security/xssAuditor/full-block-javascript-link.html:
  • http/tests/security/xssAuditor/full-block-link-onclick.html:
  • http/tests/security/xssAuditor/full-block-object-tag.html:
  • http/tests/security/xssAuditor/full-block-post-from-iframe.html:
  • http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html:
  • http/tests/security/xssAuditor/full-block-script-tag-with-source.html:
  • http/tests/security/xssAuditor/full-block-script-tag.html:
  • http/tests/security/xssAuditor/get-from-iframe.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed-2.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed-3.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed.html:
  • http/tests/security/xssAuditor/iframe-injection.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-more-encoding.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode2.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode3.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-url-encoded.html:
  • http/tests/security/xssAuditor/iframe-javascript-url.html:
  • http/tests/security/xssAuditor/iframe-onload-GBK-char.html:
  • http/tests/security/xssAuditor/iframe-onload-in-svg-tag.html:
  • http/tests/security/xssAuditor/iframe-srcdoc-property-blocked.html:
  • http/tests/security/xssAuditor/iframe-srcdoc.html:
  • http/tests/security/xssAuditor/img-onerror-GBK-char.html:
  • http/tests/security/xssAuditor/img-onerror-accented-char.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2.html:
  • http/tests/security/xssAuditor/img-onerror-tricky.html:
  • http/tests/security/xssAuditor/img-tag-with-comma.html:
  • http/tests/security/xssAuditor/inline-event-HTML-entities.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities.html:
  • http/tests/security/xssAuditor/javascript-link-ampersand.html:
  • http/tests/security/xssAuditor/javascript-link-control-char.html:
  • http/tests/security/xssAuditor/javascript-link-control-char2.html:
  • http/tests/security/xssAuditor/javascript-link-null-char.html:
  • http/tests/security/xssAuditor/javascript-link-one-plus-one.html:
  • http/tests/security/xssAuditor/javascript-link-safe.html:
  • http/tests/security/xssAuditor/javascript-link-url-encoded.html:
  • http/tests/security/xssAuditor/javascript-link.html:
  • http/tests/security/xssAuditor/link-onclick-ampersand.html:
  • http/tests/security/xssAuditor/link-onclick-control-char.html:
  • http/tests/security/xssAuditor/link-onclick-entities.html:
  • http/tests/security/xssAuditor/link-onclick-null-char.html:
  • http/tests/security/xssAuditor/link-onclick.html:
  • http/tests/security/xssAuditor/link-opens-new-window.html:
  • http/tests/security/xssAuditor/malformed-HTML.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-1.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-2.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-3.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-4.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-5.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-6.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-7.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-8.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-9.html:
  • http/tests/security/xssAuditor/meta-tag-http-refresh-javascript-url.html:
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html:
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html:
  • http/tests/security/xssAuditor/no-protection-script-tag.html:
  • http/tests/security/xssAuditor/non-block-javascript-url-frame.html:
  • http/tests/security/xssAuditor/object-embed-tag-control-char.html:
  • http/tests/security/xssAuditor/object-embed-tag-null-char.html:
  • http/tests/security/xssAuditor/object-embed-tag.html:
  • http/tests/security/xssAuditor/object-src-inject.html:
  • http/tests/security/xssAuditor/object-tag-javascript-url.html:
  • http/tests/security/xssAuditor/object-tag.html:
  • http/tests/security/xssAuditor/open-attribute-body.html:
  • http/tests/security/xssAuditor/open-event-handler-iframe.html:
  • http/tests/security/xssAuditor/open-iframe-src-01.html:
  • http/tests/security/xssAuditor/open-iframe-src-02.html:
  • http/tests/security/xssAuditor/open-iframe-src-03.html:
  • http/tests/security/xssAuditor/open-script-src-01.html:
  • http/tests/security/xssAuditor/open-script-src-02.html:
  • http/tests/security/xssAuditor/open-script-src-03.html:
  • http/tests/security/xssAuditor/open-script-src-04.html:
  • http/tests/security/xssAuditor/post-from-iframe.html:
  • http/tests/security/xssAuditor/property-escape-comment-01.html:
  • http/tests/security/xssAuditor/property-escape-comment-02.html:
  • http/tests/security/xssAuditor/property-escape-comment-03.html:
  • http/tests/security/xssAuditor/property-escape-entity-01.html:
  • http/tests/security/xssAuditor/property-escape-entity-02.html:
  • http/tests/security/xssAuditor/property-escape-entity-03.html:
  • http/tests/security/xssAuditor/property-escape-long.html:
  • http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html:
  • http/tests/security/xssAuditor/property-escape-noquotes.html:
  • http/tests/security/xssAuditor/property-escape-quote-01.html:
  • http/tests/security/xssAuditor/property-escape-quote-02.html:
  • http/tests/security/xssAuditor/property-escape-quote-03.html:
  • http/tests/security/xssAuditor/property-escape.html:
  • http/tests/security/xssAuditor/property-inject.html:
  • http/tests/security/xssAuditor/reflection-in-path.html:
  • http/tests/security/xssAuditor/regress-167121.html:
  • http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-full-block.html:
  • http/tests/security/xssAuditor/report-script-tag-replace-state.html:
  • http/tests/security/xssAuditor/report-script-tag.html:
  • http/tests/security/xssAuditor/resources/base-href/base-href-safe2.html:
  • http/tests/security/xssAuditor/resources/base-href/base-href-safe3.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char2.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-backslash.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-double-quote.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-null-char.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-single-quote.html:
  • http/tests/security/xssAuditor/script-tag-control-char.html:
  • http/tests/security/xssAuditor/script-tag-convoluted.html:
  • http/tests/security/xssAuditor/script-tag-entities.html:
  • http/tests/security/xssAuditor/script-tag-expression-follows.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag2.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag3.html:
  • http/tests/security/xssAuditor/script-tag-near-start.html:
  • http/tests/security/xssAuditor/script-tag-null-char.html:
  • http/tests/security/xssAuditor/script-tag-open-redirect.html:
  • http/tests/security/xssAuditor/script-tag-post-control-char.html:
  • http/tests/security/xssAuditor/script-tag-post-null-char.html:
  • http/tests/security/xssAuditor/script-tag-post.html:
  • http/tests/security/xssAuditor/script-tag-redirect.html:
  • http/tests/security/xssAuditor/script-tag-safe.html:
  • http/tests/security/xssAuditor/script-tag-safe2.html:
  • http/tests/security/xssAuditor/script-tag-safe3.html:
  • http/tests/security/xssAuditor/script-tag-safe4.html:
  • http/tests/security/xssAuditor/script-tag-src-redirect-safe.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html:
  • http/tests/security/xssAuditor/script-tag-with-actual-comma.html:
  • http/tests/security/xssAuditor/script-tag-with-callbacks.html:
  • http/tests/security/xssAuditor/script-tag-with-comma-01.html:
  • http/tests/security/xssAuditor/script-tag-with-comma-02.html:
  • http/tests/security/xssAuditor/script-tag-with-fancy-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-injected-comment.html:
  • http/tests/security/xssAuditor/script-tag-with-invalid-closing-tag.html:
  • http/tests/security/xssAuditor/script-tag-with-invalid-url-encoding.html:
  • http/tests/security/xssAuditor/script-tag-with-source-control-char.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url2.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url3.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url4.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url5.html:
  • http/tests/security/xssAuditor/script-tag-with-source-double-quote.html:
  • http/tests/security/xssAuditor/script-tag-with-source-entities.html:
  • http/tests/security/xssAuditor/script-tag-with-source-no-quote.html:
  • http/tests/security/xssAuditor/script-tag-with-source-null-char.html:
  • http/tests/security/xssAuditor/script-tag-with-source-relative-scheme.html:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host-with-query.html:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-01.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-02.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-03.html:
  • http/tests/security/xssAuditor/script-tag-with-source.html:
  • http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment-U2028.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment2.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment3.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment4.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment5.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode.html:
  • http/tests/security/xssAuditor/script-tag.html:
  • http/tests/security/xssAuditor/svg-animate.html:
  • http/tests/security/xssAuditor/svg-script-tag.html:
  • http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-big5.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-long-string.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-sjis.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-01.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-02.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-03.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-04.html:
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html:
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture.html:
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
  • http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html:
  • http/tests/webAPIStatistics/font-load-data-collection.html:
  • http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html:
  • http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html:
  • imported/blink/fast/events/popup-forwarded-gesture.html:
  • imported/blink/fast/workers/worker-shared-asm-buffer.html:
  • platform/ios/ios/fast/text/data-detectors/phone-disabled.html:
  • platform/ios/ios/fast/text/data-detectors/phone.html:
  • platform/mac/plugins/disable-plugins.html:
  • plugins/js-from-destroy.html:
  • plugins/navigator-plugin-crash.html:
  • plugins/navigator-plugins-disabled.html:
  • plugins/plugin-initiate-popup-window.html:
  • security/cannot-read-self-from-file.html:
  • storage/domstorage/localstorage/blocked-file-access-permitted-by-quirk.html:
  • storage/domstorage/localstorage/blocked-file-access.html:
  • storage/domstorage/localstorage/file-can-access.html:
  • storage/domstorage/sessionstorage/blocked-file-access.html:
  • webrtc/datachannel/mdns-ice-candidates.html:
  • webrtc/peerconnection-new-candidate-page-cache.html:
10:24 AM Changeset in webkit [269235] by Chris Dumez
  • 243 edits
    30 copies
    1 move
    318 adds
    3 deletes in trunk/LayoutTests

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

Reviewed by Sam Weinig.

Resync web-platform-tests/tools tests from upstream 5dbb0a3fa631ef73da0.

  • web-platform-tests/tools/*: Updated.
9:57 AM Changeset in webkit [269234] by Karl Rackler
  • 1 edit
    2 adds in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Catalina after r269174.

Unreviewed test gardening.

  • platform/mac-catalina/editing/input/reveal-caret-of-multiline-input-expected.txt: Added.
9:52 AM Changeset in webkit [269233] by Karl Rackler
  • 1 edit
    1 delete in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Catalina after r269174. Capital letter in Input folder.

Unreviewed test gardening.

  • platform/mac-catalina/editing/Input/reveal-caret-of-multiline-input-expected.txt: Removed.
8:41 AM Changeset in webkit [269232] by Chris Fleizach
  • 4 edits in trunk/Source/WebCore

AX: Provide build workaround while isSystemVoice is not in all SDKs
https://bugs.webkit.org/show_bug.cgi?id=218414

Reviewed by Tim Horton.

Source/WebCore:

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

Source/WebCore/PAL:

  • pal/spi/cocoa/AXSpeechManagerSPI.h:
5:57 AM Changeset in webkit [269231] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] InlineLevelBox logical rect should only be accessed through LineBox
https://bugs.webkit.org/show_bug.cgi?id=218418

Reviewed by Antti Koivisto.

InlineLevelBox logical rect is relative to the parent inline box. Calling InlineLevelBox::logicalRect
and expect a line relative rect is an easy mistake to make (and one I made myself).
Only the LineBuilder and the LineBox should really need access to the relative rect, others should
continue to use LineBox::logicalRectForInlineLevelBox.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::logicalTop const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalBottom const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalLeft const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalWidth const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalHeight const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalRect const): Deleted.

5:55 AM Changeset in webkit [269230] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Set the descent layout bounds for atomic inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=218421

Reviewed by Antti Koivisto.

In most cases the layout bounds descent is 0, but in case of inline-block (or inline table) the decent value may be greater than 0.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

Oct 31, 2020:

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

[LFC][Integration] LineIteratorModernPath::top/bottom map to Line::enclosingRect::top/bottom
https://bugs.webkit.org/show_bug.cgi?id=218415

Reviewed by Antti Koivisto.

Line::enclosingRect includes all the inline level boxes on the line.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::top const):
(WebCore::LayoutIntegration::LineIteratorModernPath::bottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTopForHitTesting const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionBottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxBottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::y const):

12:06 PM Changeset in webkit [269228] by Simon Fraser
  • 19 edits in trunk/Source

Clean up BoxSide and BorderEdge code
https://bugs.webkit.org/show_bug.cgi?id=218197

Reviewed by Sam Weinig.

Source/WebCore:

Change border-drawing functions in RenderBoxModelObject which took BorderEdge[] to
use RectEdges<BorderEdge>. In addition, make BoxSide an enum class, and remove the redundant
PhysicalBoxSide. Also make BorderEdgeFlags an OptionSet<>.

I renamed PhysicalBoxSide to BoxSide because "physical" is a loaded term (it could mean
either locally top/right/bottom/left, or refer to absolute "physical coordinates").
This allowed BoxSide to be used in RectEdges, therefore making RectEdges<BorderEdge>
the right way to represent the set of edges for a box.

An equivalent set of bit flags, BoxSideFlag, allows use in an OptionSet<>.

Use more enumeration of sides in the border painting code.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::rootMargin const):

  • platform/RectEdges.h:

(WebCore::RectEdges::at):
(WebCore::RectEdges::top):
(WebCore::RectEdges::right):
(WebCore::RectEdges::bottom):
(WebCore::RectEdges::left):
(WebCore::RectEdges::at const):
(WebCore::RectEdges::top const):
(WebCore::RectEdges::right const):
(WebCore::RectEdges::bottom const):
(WebCore::RectEdges::left const):
(WebCore::RectEdges::setAt):
(WebCore::RectEdges::setTop):
(WebCore::RectEdges::setRight):
(WebCore::RectEdges::setBottom):
(WebCore::RectEdges::setLeft):

  • platform/text/WritingMode.h:

(WebCore::isHorizontalPhysicalSide):
(WebCore::mirrorPhysicalSide):
(WebCore::rotatePhysicalSide):
(WebCore::mapLogicalSideToPhysicalSide):

  • rendering/BorderEdge.cpp:

(WebCore::borderEdges):
(WebCore::BorderEdge::getBorderEdgeInfo): Deleted.

  • rendering/BorderEdge.h:

(WebCore::edgeFlagForSide):
(WebCore::includesEdge):
(WebCore::includesAdjacentEdges):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::borderWillArcInnerEdge):
(WebCore::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::colorsMatchAtCorner):
(WebCore::colorNeedsAntiAliasAtCorner):
(WebCore::willBeOverdrawn):
(WebCore::joinRequiresMitre):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateSideRect):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
(WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge const):
(WebCore::RenderBoxModelObject::borderObscuresBackground const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide const):
(WebCore::RenderElement::paintOutline):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::paintOutlineForLine):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::paintColumnRules):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::calculateBorderStyleColor):

  • rendering/RenderObjectEnums.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintCollapsedBorders):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::offsetTopForRowGroupBorder):
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):

  • rendering/style/NinePieceImage.h:

(WebCore::imagePieceHorizontalSide):
(WebCore::imagePieceVerticalSide):

Source/WebKit:

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(boxSide):

9:11 AM Changeset in webkit [269227] by Chris Dumez
  • 21 edits
    7 adds in trunk

Promises returned by our DOM API have the caller's global instead of the callee's
https://bugs.webkit.org/show_bug.cgi?id=218363

Reviewed by Darin Adler and Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/range/sw.https.window.js:

Re-import latest version of the test from upstream. Without those upstream changes, there would be a testharness error
when running this test.

  • web-platform-tests/html/cross-origin-embedder-policy/coep-on-response-from-service-worker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/promise-methods-after-discard-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/startrendering-after-discard-expected.txt:

Rebaseline WPT tests that are now passing.

Source/WebCore:

Promises returned by our DOM APIs were using the caller's global instead of the
callee's global. This behavior was inconsistent with Chrome and Firefox, and was
causing failures in web-platform-tests. Because the global of the promise was
wrong, the global of the values passed when settling the promise (e.g. the global
of the exception used to reject a promise) was also wrong. This patch fixes this.

After fixing the global of DOM promises, some tests started failing because they
expect the promises coming from subframes to still get settled *after* their
iframe has been removed from the document. Such promises get settled properly
in Firefox and Chrome. They also used to settle properly in WebKit because we
were incorrectly using the caller's global. The issue was that after an iframe
gets detached, Document::stopActiveDOMObjects() would get called, which would
stop the EventLoopTaskGroup associated with the document and clear all pending
tasks from this group in the event loop. To address this, when a
Document::stopActiveDOMObjects(), we now mark the Document's EventLoopTaskGroup
as "ready to stop" instead of stopping it. Only once ALL groups in the EventLoop
are ready to stop, do we actually stop all those groups. This is important
because each document has its own group but all documents of similar origins
share the same EventLoop.

Tests: fast/js-promise-from-detached-iframe.html

http/tests/eventloop/promise-from-cross-origin-detached-iframe.html
webaudio/promise-global-object.html

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::shouldIgnoreRequestToFulfill const):
(WebCore::callPromiseFunction):

  • dom/Document.cpp:

(WebCore::Document::stopActiveDOMObjects):
(WebCore::Document::eventLoop):

  • dom/EventLoop.cpp:

(WebCore::EventLoop::registerGroup):
(WebCore::EventLoop::unregisterGroup):
(WebCore::EventLoop::stopAssociatedGroupsIfNecessary):

  • dom/EventLoop.h:

(WebCore::EventLoopTaskGroup::EventLoopTaskGroup):
(WebCore::EventLoopTaskGroup::~EventLoopTaskGroup):
(WebCore::EventLoopTaskGroup::isReadyToStop const):
(WebCore::EventLoopTaskGroup::markAsReadyToStop):
(WebCore::EventLoopTaskGroup::stopAndDiscardAllTasks):

  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::prepareForDestruction):

LayoutTests:

  • fast/js-promise-from-detached-iframe-expected.txt: Added.
  • fast/js-promise-from-detached-iframe.html: Added.

Add layout test to verify that JS promises from iframes properly get settled after the
the iframe gets removed from the doucment. I have verified that this test passes in
both Firefox and Chrome.

  • http/tests/eventloop/promise-from-cross-origin-detached-iframe-expected.txt: Added.
  • http/tests/eventloop/promise-from-cross-origin-detached-iframe.html: Added.
  • http/tests/eventloop/resources/promise-from-cross-origin-detached-iframe-subframe.html: Added.

Similar test as above but in a cross-origin iframe. Ryosuke recommended adding this test
since event loops only shared between documents of similar origins. I have verified that this
test passes in both Firefox and Chrome.

  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:

Rebaseline existing test that has slightly different output.

  • requestidlecallback/requestidlecallback-document-gc-expected.txt:
  • requestidlecallback/requestidlecallback-document-gc.html:

Tweak test to check that enough documents are gc's at regular intervals, instead of expecting
them to be collected in a 0-timer.

  • webaudio/promise-global-object-expected.txt: Added.
  • webaudio/promise-global-object.html: Added.

Add test to verify that the global object of the promise is correct when the promise comes
from calling a DOM API in an subframe. Previously, we would incorrectly use the caller's
global instead of the callee's global. I have verified that this test passes in both Firefox
and Chrome.

9:08 AM Changeset in webkit [269226] by weinig@apple.com
  • 22 edits
    4 deletes in trunk

Remove all remaining testRunner.overridePreference calls
https://bugs.webkit.org/show_bug.cgi?id=218373

Reviewed by Simon Fraser.

Tools:

Remove implementations of testRunner.overridePreference. Adds testRunner.setShouldInvertColors,
which is a windows only preference. When we generate preferences for Windows, we can convert
this to use test header commands instead.

Also add default for MinimumFontSize so it can be used as test header commands for DumpRenderTree.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • DumpRenderTree/TestRunner.cpp:

(setShouldInvertColors):
(TestRunner::staticFunctions):
(overridePreferenceCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::overridePreference): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setShouldInvertColors):
(TestRunner::overridePreference): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::toBool): Deleted.
(WTR::TestRunner::overridePreference): Deleted.

LayoutTests:

Removes remaining uses of testRunner.overridePreference and addresses some
recent feedback by removing some unnecessary "window." uses.

Also removed test cross-origin-local-storage-wk1.html as it is redundant with
other tests such as cross-origin-local-storage.html which uses internals instead.

  • fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html:
  • fast/parser/noscript-with-javascript-disabled.html:
  • fast/text/international/locale-sensitive-fonts.html:
  • fast/text/zero-font-size.html:
  • http/tests/download/default-encoding.html:
  • http/tests/misc/favicon-loads-with-images-disabled.html:
  • http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • http/tests/security/cross-origin-local-storage-wk1.html: Removed.
  • http/tests/security/resources/load-local-storage.html:
  • http/tests/xsl/xslt-transform-with-javascript-disabled.html:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk2/http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • platform/mac/http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/inverted-colors/non-composited.html:
  • platform/wk2/TestExpectations:
  • svg/as-image/svg-image-with-data-uri-images-disabled.html:
8:21 AM EarlyWarningSystem edited by aakash_jain@apple.com
(diff)
7:29 AM Changeset in webkit [269225] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Split inline level box alignment process into multiple phases
https://bugs.webkit.org/show_bug.cgi?id=218397

Reviewed by Antti Koivisto.

Inline level box alignment inside the line box is described at https://www.w3.org/TR/css-inline-3/#line-layout.
The alignment process involves 3 distinct steps:

  1. Computing the line box's logical height. This step solely uses the layout bounds geometry of the inline level boxes.
  2. Finding the root inline box vertical position. This step is somewhat similar to the final, alignment phase but instead of

the logical top, here we compute the baseline offsets. It helps to figure out the root inline box's baseline positing inside the line box.

  1. Aligning the inline level boxes by computing their logical top position.

These 3 steps are implemented by the following 3 functions:

  1. computeLineBoxLogicalHeight()
  2. computeRootInlineBoxVerticalPosition()
  3. alignInlineLevelBoxes()

While some of the code in these functions may look redundant, they work with different type of geometries (layout bounds vs. normal ascent/descent/logical height).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::style const):
(WebCore::Layout::LineBox::InlineLevelBox::fontMetrics const): Deleted.

5:53 AM Changeset in webkit [269224] by Alan Bujtas
  • 5 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>

Reviewed by Antti Koivisto.

Missed these files in r268958.

  • editing/inserting/paragraph-separator-in-table-1.html:
  • platform/mac/editing/inserting/paragraph-separator-in-table-1-expected.txt:
5:19 AM Changeset in webkit [269223] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Generate RootInlineBox::lineTop/lineBottom matching geometries
https://bugs.webkit.org/show_bug.cgi?id=218412

Reviewed by Antti Koivisto.

Line::enclosingRect's y() and maxY() match RootInlineBox::lineTop() and lineBottom() vertical coordinates.
It is required by the line iterator as some clients are apparently interested in the overflown area.

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::enclosingRect const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

5:18 AM Changeset in webkit [269222] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Rename ContainerStart/End to InlineBoxStart/End
https://bugs.webkit.org/show_bug.cgi?id=218410

Reviewed by Antti Koivisto.

ContainerStart/End inline items are triggered by inline boxes.

"An inline box is one that is both inline-level and whose contents participate in its containing inline formatting context."

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::isTextContent):
(WebCore::Layout::isVisuallyEmptyWhitespaceContent):
(WebCore::Layout::isNonContentRunsOnly):
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::collectHangingTrailingWhitespaceContent):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::isInlineBoxStart const):
(WebCore::Layout::InlineItem::isInlineBoxEnd const):
(WebCore::Layout::InlineItem::isContainerStart const): Deleted.
(WebCore::Layout::InlineItem::isContainerEnd const): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::visuallyCollapsePreWrapOverflowContent):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::isRunVisuallyNonEmpty const):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::appendInlineContainerStart): Deleted.
(WebCore::Layout::Line::appendInlineContainerEnd): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::isInlineBoxStart const):
(WebCore::Layout::Line::Run::isInlineBoxEnd const):
(WebCore::Layout::Line::Run::isContainerStart const): Deleted.
(WebCore::Layout::Line::Run::isContainerEnd const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::nextContentForLine):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

Oct 30, 2020:

11:52 PM Changeset in webkit [269221] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Usage of allWorkletGlobalScopesSet() in WorkletGlobalScope is not thread-safe
https://bugs.webkit.org/show_bug.cgi?id=218408

Reviewed by Geoff Garen.

The WorkletGlobalScope constructor / destructor were adding / removing themselves
in allWorkletGlobalScopesSet(), without locking. This used to be safe when we
only had paint worklets, because those are main-thread only. However,
AudioWorketGlobalScopes get constructed / destroyed on background thread so this
is no longer safe.

Since this is only used by Internals for layout tests to figure out how many
worklet instances are alive, I replaced the map with an std::atomic<unsigned>.

No new tests, found when running existing tests with GuardMalloc.

  • testing/Internals.cpp:

(WebCore::Internals::isAnyWorkletGlobalScopeAlive const):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):
(WebCore::WorkletGlobalScope::~WorkletGlobalScope):
(WebCore::WorkletGlobalScope::numberOfWorkletGlobalScopes):

  • worklets/WorkletGlobalScope.h:
8:34 PM Changeset in webkit [269220] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix internal watchOS and tvOS builds after r269211
https://bugs.webkit.org/show_bug.cgi?id=217506

Unreviewed build fix.

  • pal/spi/cg/CoreGraphicsSPI.h:
8:21 PM Changeset in webkit [269219] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r267689): Rise of the Tomb Raider gets stuck while launching
https://bugs.webkit.org/show_bug.cgi?id=218411
<rdar://problem/70622557>

Reviewed by Zalan Bujtas.

  • Scripts/Preferences/WebPreferences.yaml:

Sam accidentally changed the default of RequiresUserGestureForMediaPlayback
in r267689; previously it was @YES only in PLATFORM(IOS_FAMILY), he made
it true globally.

Go back to the old, and intended, behavior.

7:00 PM Changeset in webkit [269218] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Big Sur.

Unreviewed test gardening.

  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:
6:34 PM Changeset in webkit [269217] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r268178): [iOS] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multiple-times.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217741
Remove test expectation after revert of r268178.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:21 PM Changeset in webkit [269216] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (iOS 14): [ iOS wk2 ] imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html is a constant failure (217419)
https://bugs.webkit.org/show_bug.cgi?id=217419
Re-baseline

Unreviewed test gardening.

  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
5:54 PM Changeset in webkit [269215] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r268958): [ Big Sur ] fast/forms/basic-inputs.html is a constant failure
rdar://70904424
Re-baseline after r268958
Unreviewed test gardening.

  • platform/mac/fast/forms/basic-inputs-expected.txt:
5:29 PM Changeset in webkit [269214] by Chris Dumez
  • 192 edits
    3 moves
    10 adds
    3 deletes in trunk/LayoutTests

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

Reviewed by Sam Weinig.

Resync web-platform-tests/interfaces tests from upstream 5dbb0a3fa631ef73da06.

  • web-platform-tests/audio-output/idlharness.https.window-expected.txt:
  • web-platform-tests/encoding/idlharness.any-expected.txt:
  • web-platform-tests/encoding/idlharness.any.js:
  • web-platform-tests/encoding/idlharness.any.worker-expected.txt:
  • web-platform-tests/html/dom/idlharness.https.html:
  • web-platform-tests/html/dom/idlharness.worker.js:
  • web-platform-tests/payment-request/idlharness.https.window-expected.txt:
  • web-platform-tests/resize-observer/idlharness.window-expected.txt:
  • web-platform-tests/streams/idlharness.any-expected.txt:
  • web-platform-tests/streams/idlharness.any.worker-expected.txt:
  • web-platform-tests/web-animations/idlharness.window-expected.txt:
  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/idlharness.https.window.js:

Rebaseline some WPT tests whose output has changed. Some of the tests had
to be resync'd from upstream to keep running.

  • web-platform-tests/interfaces/*: Updated.
5:15 PM Changeset in webkit [269213] by Russell Epstein
  • 3 edits in branches/safari-611.1.4-branch/Source/WebKit

Cherry-pick r269202. rdar://problem/70901517

Correct sandbox violations in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218356
<rdar://problem/70574999>

Reviewed by Eric Carlson.

The new GPU Process sandbox is missing 'sysctl.name2oid' from the allow list, even though
we allow it everywhere else. We need this for proper function.

  • 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@269202 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:15 PM Changeset in webkit [269212] by Russell Epstein
  • 2 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r269188. rdar://problem/70901497

REGRESSION (r269146): ASSERTION FAILED: didNeedLayout
logicalHeight() == oldHeight in WebCore::RenderBlockFlow::ensureLineBoxes

https://bugs.webkit.org/show_bug.cgi?id=218350
<rdar://problem/70822708>

Reviewed by Zalan Bujtas.

Dropping of ensureLineBoxes call revealed a bug in text control style updates.

RenderTextControlSingleLine mutates style of the innerTextElement() renderer by altering the height property.
On style update this mutation is lost which causes ensureLineBoxes for innerTextElement() to miscompute block height
if RenderTextControlSingleLine layout has not happened before.

  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::styleDidChange):

Don't zero the dimension properties of the innerTextElement() unnecessarily. Instead see of the underlying style has
actually changed and set the style only in that case. That will then trigger layout as needed.

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

5:01 PM Changeset in webkit [269211] by mmaxfield@apple.com
  • 13 edits
    4 adds in trunk/Source/WebCore

[Cocoa] [GPU Process] Perform image decoding of color fonts in the Web Process
https://bugs.webkit.org/show_bug.cgi?id=217506

Reviewed by Simon Fraser.

Source/WebCore:

Core Text itself doesn't know how to draw things; it has to rely on Core Graphics to do that.
However, Core Graphics only understands the simplest of text drawing concepts; it doesn't understand
things like color fonts or emoji. Core Text sits between the application and Core Graphics, and is
responsible for splitting up an arbitrary draw command into individual simple pieces which Core
Graphics can understand. For example, when you ask Core Text to draw a string which is of the form
"outlines emoji outlines", Core Text will end up telling Core Graphics to draw the first outlines, then
draw the emoji image (using Core Graphics's normal image drawing routines), then draw the remaining
outlines.

This is exactly the same kind of filtering we want to do for the GPU Process. We want to be able to
separate out the glyphs which are rendered using outlines from the emoji glyphs which are rendered
using images. We want to handle the image glyphs ourself in WebKit using our own image drawing display
list facilities, which will cause images to be decoded in the Web Process, thereby increasing the
security of the GPU Process.

So, this patch implements a custom CGContext, backed by a function table that is populated in WebKit.
We pass this custom CGContext into Core Text, which does its normal splitting up of outlines / images,
and calls glyph / image drawing functions on our CGContext. Because these functions are implemented by
WebKit, this effectively makes WebKit able to intercept the drawing calls, and implement them ourself
by appending items to the current display list. So, when Core Text tells our CGContext to draw an emoji,
our callback runs and we "just" append a DrawImage display list item.

I use scare-quotes around "just" because it is a bit more complicated than that. Core Text internally
can change the fill/stroke color (for COLR glyphs), the text matrix (it should be updated between
adjacent runs), the CTM, and the shadow state (because Core Text sometimes will implement shadows itself
by just drawing the text two times). So, in our CGContext callback, we have to look at the state of
the CGContext, figure out if anything changed (because we're not notified when changes happen), and
if things did change, append additional display list items to make a parallel change happen at draw
time.

Tests added in https://trac.webkit.org/r269177

  • Headers.cmake:
  • PlatformAppleWin.cmake:
  • PlatformWinCairo.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/FreeType.cmake:
  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::setupContext):

  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::fillVectorWithHorizontalGlyphPositions):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h: Added.
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp: Added.

(WebCore::DisplayList::beginLayer): VTable callback for creating a transparency layer.
(WebCore::DisplayList::endLayer): Ditto for ending a transparency layer.
(WebCore::DisplayList::drawGlyphs): VTable callback for drawing outline glyphs.
(WebCore::DisplayList::drawImage): VTable callback for drawing an image.
(WebCore::DisplayList::DrawGlyphsRecorder::createInternalContext): Set up the custom CGContext
infrastructure. Hook up the VTable callbacks.
(WebCore::DisplayList::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DisplayList::DrawGlyphsRecorder::populateInternalState): We need to save the GraphicsContext
state at the beginning of the entry point, so we can restore anything that changed when we're done.
(WebCore::DisplayList::DrawGlyphsRecorder::populateInternalContext): Because Core Text internally
interrogates the CGContext to see if it needs to do things like draw shadows itself, we need to make
sure that the recorder's state is mirrored in our custom CGContext. This applies all the relevant
state to our CGContext so it's ready when Core Text asks for it.
(WebCore::DisplayList::DrawGlyphsRecorder::prepareInternalContext): Call the above two functions.
(WebCore::DisplayList::DrawGlyphsRecorder::concludeInternalContext): Called once when we're done.
This function cleans up, by possibly appending additional display list items to restore the state
back to what it was when we started.
(WebCore::DisplayList::DrawGlyphsRecorder::updateFillColor): Detect a changed fill color, and if it has
changed, append a display list item to make a parallel change at drawing time.
(WebCore::DisplayList::DrawGlyphsRecorder::updateStrokeColor): Ditto for the stroke color.
(WebCore::DisplayList::DrawGlyphsRecorder::updateCTM): Ditto for the CTM.
(WebCore::DisplayList::shadowIsCleared):
(WebCore::DisplayList::DrawGlyphsRecorder::updateShadow): Ditto for the shadow state.
(WebCore::DisplayList::DrawGlyphsRecorder::recordBeginLayer): Hook this up to beginTransparencyLayer().
(WebCore::DisplayList::DrawGlyphsRecorder::recordEndLayer): Hook this up to endTransparencyLayer().
(WebCore::DisplayList::computeAdvancesFromPositions): CGContext gives us positions, but our display list
infrastructure requires advances. Simply subtract to convert between them.
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs): The callback that appends a DrawGlyphs
display list item. Note it has to call the various update() functions to detect changes in the CGContext
state.
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawImage): Ditto for a DrawImage display list item.
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs): The main entry point. Simply set up, do the work,
then clean up.

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp: Added. Dummy implementation

to make the other ports continue to compile.
(WebCore::DisplayList::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs): Call m_drawGlyphsRecorder.drawGlyphs() instead of just
appending a DrawGlyphs command.
(WebCore::DisplayList::Recorder::concatCTM): Tiny optimization.
(WebCore::DisplayList::Recorder::clipToDrawingCommands): The current clipToDrawingCommands's context
CTM didn't match the parallel one used during playback. In order to make the CTMs match are recording
and playback time, we have to make sure they start off the same.

  • platform/graphics/displaylists/DisplayListRecorder.h: DisplayList::Recorder owns a DrawGlyphsRecorder,

whose lifetime equals that of the DisplayList::Recorder. Rather than destroying / recreating the
DrawGlyphsRecorder, the DrawGlyphsRecorder class is smart enough to clean up after itself so it can be
reused multiple times.

Source/WebCore/PAL:

Add some new entry points, and do some various cleanup.

  • pal/spi/cg/CoreGraphicsSPI.h:
4:56 PM Changeset in webkit [269210] by BJ Burg
  • 31 edits
    2 adds
    2 deletes in trunk

Web Inspector: move InspectorFrontendAPIDispatcher to WebCore, clean up uses
https://bugs.webkit.org/show_bug.cgi?id=217835
<rdar://problem/70384407>

Reviewed by Devin Rousso.

Source/WebCore:

Expose the dispatcher as part of the InspectorFrontendClient API so that other code
can use the dispatcher regardless of whether it's a WebInspectorUI or RemoteWebInspectorUI.

Add an InspectorFrontendAPIDispatcher instance and getter to InspectorFrontendClientLocal.

Adopt the JSONValue-based InspectorFrontendAPIDispatcher::dispatch() method
in InspectorFrontendClientLocal. Remove the redundant parallel queuing implementation.
Remove redundant public methods that are available on InspectorFrontendAPIDispatcher.

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

Moved files.

  • inspector/InspectorFrontendAPIDispatcher.cpp: Renamed from Source/WebKit/WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.cpp.

(WebCore::InspectorFrontendAPIDispatcher::InspectorFrontendAPIDispatcher):
(WebCore::InspectorFrontendAPIDispatcher::reset):
(WebCore::InspectorFrontendAPIDispatcher::frontendLoaded):
(WebCore::InspectorFrontendAPIDispatcher::suspend):
(WebCore::InspectorFrontendAPIDispatcher::unsuspend):
(WebCore::InspectorFrontendAPIDispatcher::dispatchCommand):
(WebCore::InspectorFrontendAPIDispatcher::dispatchMessageAsync):
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebCore::InspectorFrontendAPIDispatcher::evaluateQueuedExpressions):
(WebCore::InspectorFrontendAPIDispatcher::evaluateExpression):
(WebCore::InspectorFrontendAPIDispatcher::evaluateExpressionForTesting):
Add new dispatch() method. Remove other dispatch methods that can be expressed
using the new JSON::Value-based method. If it's not possible to evaluate JS
immediately, schedule a one-shot task to try again on a different event loop turn.

  • inspector/InspectorFrontendAPIDispatcher.h: Renamed from Source/WebKit/WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.h.

Add new dispatch() method which takes a vector of JSON::Value objects and
serializes them into command arguments for the frontend.

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

(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
(WebCore::InspectorFrontendClientLocal::pagePaused):
(WebCore::InspectorFrontendClientLocal::pageUnpaused):
(WebCore::InspectorFrontendClientLocal::setDockingUnavailable):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
(WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
(WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
(WebCore::InspectorFrontendClientLocal::startProfilingJavaScript):
(WebCore::InspectorFrontendClientLocal::stopProfilingJavaScript):
(WebCore::InspectorFrontendClientLocal::showConsole):
(WebCore::InspectorFrontendClientLocal::showResources):
(WebCore::InspectorFrontendClientLocal::showMainResourceForFrame):
Use InspectorFrontendAPIDispatcher to dispatch commands to the frontend.

(WebCore::InspectorFrontendClientLocal::dispatch): Deleted.
(WebCore::InspectorFrontendClientLocal::dispatchMessage): Deleted.
(WebCore::InspectorFrontendClientLocal::dispatchMessageAsync): Deleted.
(WebCore::InspectorFrontendClientLocal::evaluateOnLoad): Deleted.
These are redundant with InspectorFrontendAPIDispatcher.

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::sendMessageToFrontend): Use frontend dispatcher directly.

Source/WebKit:

Adopt the JSONValue-based InspectorFrontendAPIDispatcher::dispatch() method
in WebInspectorUI and RemoteInspectorUI methods that dispatch to the frontend.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj: Move files.
  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::RemoteWebInspectorUI):
(WebKit::RemoteWebInspectorUI::initialize):
(WebKit::RemoteWebInspectorUI::updateFindString):
(WebKit::RemoteWebInspectorUI::didSave):
(WebKit::RemoteWebInspectorUI::didAppend):
(WebKit::RemoteWebInspectorUI::frontendLoaded):
(WebKit::RemoteWebInspectorUI::sendMessageToFrontend):
(WebKit::RemoteWebInspectorUI::pagePaused):
(WebKit::RemoteWebInspectorUI::pageUnpaused):
(WebKit::RemoteWebInspectorUI::setDiagnosticLoggingAvailable):

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

(WebKit::WebInspectorUI::WebInspectorUI):
(WebKit::WebInspectorUI::setDockSide):
(WebKit::WebInspectorUI::setDockingUnavailable):
(WebKit::WebInspectorUI::setIsVisible):
(WebKit::WebInspectorUI::updateFindString):
(WebKit::WebInspectorUI::setDiagnosticLoggingAvailable):
(WebKit::WebInspectorUI::showConsole):
(WebKit::WebInspectorUI::showResources):
(WebKit::WebInspectorUI::showMainResourceForFrame):
(WebKit::WebInspectorUI::startPageProfiling):
(WebKit::WebInspectorUI::stopPageProfiling):
(WebKit::WebInspectorUI::startElementSelection):
(WebKit::WebInspectorUI::stopElementSelection):
(WebKit::WebInspectorUI::didSave):
(WebKit::WebInspectorUI::didAppend):
(WebKit::WebInspectorUI::sendMessageToFrontend):
(WebKit::WebInspectorUI::evaluateInFrontendForTesting):
(WebKit::WebInspectorUI::pagePaused):
(WebKit::WebInspectorUI::pageUnpaused):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

Add missing header includes (related to unified sources changes from r269168).

Source/WebKitLegacy/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::sendMessageToFrontend):

LayoutTests:

  • inspector/dom/dom-remove-events.html:
  • inspector/dom/remove-multiple-nodes.html:

The order of events received has changed slightly due to the new auto-suspend behavior
in InspectorFrontendAPIDispatcher. Remove event handlers when the test is complete to
ensure that events which arrive after the test has finished do not stomp on the expected results.

  • inspector/debugger/call-frame-function-name.html:
  • inspector/debugger/call-frame-this-host.html:
  • inspector/debugger/hit-breakpoint-from-console.html:
  • inspector/debugger/setBreakpoint-autoContinue.html:
  • inspector/debugger/setBreakpoint-column.html:
  • inspector/debugger/setBreakpoint-condition.html:
  • inspector/debugger/setBreakpoint.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:

Some tests seem to call ProtocolTest.completeTest() from the handler of Debugger.paused, when
the debugger is still paused. This causes timeouts after this refactoring, since not resuming means that
we'll get stuck in the debugger's nested run loop and never return.

4:52 PM Changeset in webkit [269209] by rniwa@webkit.org
  • 1 edit
    11 adds in trunk

Add Introduction to WebKit
https://bugs.webkit.org/show_bug.cgi?id=217017

Rubber-stamped by Simon Fraser.

Added the basic introductory documentation for WebKit.

  • Introduction.md: Added.
  • resources/js-wrapper.png: Added.
  • resources/webkit2-process-architecture.png: Added.
  • resources/xcode-add-file.png: Added.
  • resources/xcode-build-settings-for-run.png: Added.
  • resources/xcode-export-header.png: Added.
  • resources/xcode-scheme-dumprendertree.png: Added.
  • resources/xcode-scheme-layout-test.png: Added.
  • resources/xcode-workspace-build-location.png: Added.
  • resources/xcode-workspace-settings.png: Added.
3:59 PM Changeset in webkit [269208] by Chris Fleizach
  • 7 edits
    1 add in trunk/Source

AX: Incorrect list of voices being displayed on iOS
https://bugs.webkit.org/show_bug.cgi?id=218293

Reviewed by Per Arne Vollan.

Source/WebCore:

Limit the voices that we display in WebSpeech to only built-in system voices. This was the intention of the "compact"
decision, but some mobile assets have compact voices, which are not available WebContent.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/AXSpeechManagerSPI.h: Added.

Source/WTF:

  • wtf/PlatformHave.h:
3:26 PM Changeset in webkit [269207] by Russell Epstein
  • 1 copy in tags/Safari-610.3.6

Tag Safari-610.3.6.

1:34 PM Changeset in webkit [269206] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Further lessen reliance on VPATH in WebCore/DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=218378
<rdar://problem/70730895>

Reviewed by Darin Adler.

Bug 217696 updated WebCore/DerivedSources.make to rely less on VPATH
and make more use of explicit partial or full paths. The solution
there, however, did not go far enough, and led to failures when
building WebKit for Safari Tech Preview and using old SDKs that
contains files that have since been "upstreamed" into WebKit. Address
this problem by taking further control of how DerivedSources.make
finds needed files instead of using the VPATH mechanism.

No new tests -- this is a build fix.

  • DerivedSources.make:
1:32 PM Changeset in webkit [269205] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitpy] Use allowlist and blocklist
https://bugs.webkit.org/show_bug.cgi?id=217985
<rdar://problem/70499499>

Reviewed by Aakash Jain.

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

(check_namespace_indentation):

  • Scripts/webkitpy/w3c/common.py:

(is_basename_skipped):

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild):

1:27 PM Changeset in webkit [269204] by Fujii Hironori
  • 4 edits
    2 adds in trunk

[TextureMapper] Replica layers don't blend correctly because computeOverlapRegions doesn't take TextureMapperPaintOptions::transform into account
https://bugs.webkit.org/show_bug.cgi?id=218307

Reviewed by Don Olmstead.

Source/WebCore:

Blending in replica layers didn't work as expected because
computeOverlapRegions didn't take the transform of
TextureMapperPaintOptions into account. Rendering replica layers
are achieved by using the transform.

TextureMapperLayer::paintWithIntermediateSurface also should take
the transform. commitSurface no longer needs to transform by it.

Test: compositing/reflections/opacity-in-reflection.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/reflections/opacity-in-reflection-expected.html: Added.
  • compositing/reflections/opacity-in-reflection.html: Added.
1:09 PM Changeset in webkit [269203] by Chris Dumez
  • 5 edits in trunk

BaseAudioContext.decodeAudioData() should throw an InvalidStateError when document is not fully active
https://bugs.webkit.org/show_bug.cgi?id=218400

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context-expected.txt:

Source/WebCore:

BaseAudioContext.decodeAudioData() should throw an InvalidStateError when document is not fully active:

We were previously throwing a NotAllowedError instead.

No new tests, rebaselined existing tests.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::decodeAudioData):

11:06 AM Changeset in webkit [269202] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Correct sandbox violations in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218356
<rdar://problem/70574999>

Reviewed by Eric Carlson.

The new GPU Process sandbox is missing 'sysctl.name2oid' from the allow list, even though
we allow it everywhere else. We need this for proper function.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
11:06 AM Changeset in webkit [269201] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Extra closing parenthesis added after var in styles panel
https://bugs.webkit.org/show_bug.cgi?id=218295
<rdar://problem/70771314>

Reviewed by Devin Rousso.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):
Remove contents.push(token) which was adding ). The closing parenthesis that was already
included in rawTokens above.
Drive-by: rawTokens.slice() should never include i as the 2nd argument. i is an index of an item
in the tokens - a different array.

10:42 AM Changeset in webkit [269200] by Alan Coon
  • 11 edits in branches/safari-611.1.4-branch

Cherry-pick r269173. rdar://problem/70831161

[Cocoa] Remove soft linking of NetworkExtension.framework
https://bugs.webkit.org/show_bug.cgi?id=218314
<rdar://problem/70785239>

Reviewed by Andy Estes.

Source/WebCore:

WebCore should link NetworkExtension.framework normally, to avoid the
runtime cost associated with soft linking.

  • Configurations/WebCore.xcconfig:

On macOS, weak link the framework since NetworkExtension.framework is
not available on the Base System.

  • platform/cocoa/NetworkExtensionContentFilter.h:

Added the isRequired static method to avoid soft linking
NetworkExtension.framework in WebKit.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

Only compile this file in the ENABLE(CONTENT_FILTERING) build, as its
functionality is unavailable on tvOS.

(WebCore::NetworkExtensionContentFilter::enabled):
(WebCore::NetworkExtensionContentFilter::initialize):
(WebCore::NetworkExtensionContentFilter::unblockHandler const):
(WebCore::NetworkExtensionContentFilter::isRequired):

Source/WebKit:

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::addPlatformLoadParameters):

Replaced the soft linked method call with a new method exported from
WebCore.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):

Tools:

Updated a test to reflect that NetworkExtension.framework is no longer
loaded at runtime. This test was failing on Catalina after r269109,
as the Contacts framework was loading NetworkExtension.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.h:
  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm: (-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:]): (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm: (-[ContentFilteringPlugIn checkIfPlatformFrameworksAreLoaded:]):

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

10:42 AM Changeset in webkit [269199] by Alan Coon
  • 5 edits
    1 delete in branches/safari-611.1.4-branch

Cherry-pick r269160. rdar://problem/70831130

Unreviewed, reverting r268192.

PLT regression - rdar://problem/70141350

Reverted changeset:

"Adjust heuristic for checking whether view reaches visually
non-empty state"
https://bugs.webkit.org/show_bug.cgi?id=217400
https://trac.webkit.org/changeset/268192

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

10:42 AM Changeset in webkit [269198] by Alan Coon
  • 4 edits
    2 adds in branches/safari-611.1.4-branch

Cherry-pick r269136. rdar://problem/70831153

REGRESSION(r267329): Crash in VisibleSelection::toNormalizedRange()
https://bugs.webkit.org/show_bug.cgi?id=218276

Reviewed by Wenson Hsieh.

Source/WebCore:

The crash was a symptom of the issue that m_extent or m_base could be null but not the other
when canonicalizing a non-null Position with VisiblePosition will make it null.

Fixed the bug by making sure base and extent's nullness match.

Test: editing/selection/delete-selection-with-disconnected-extent.html

  • editing/VisibleSelection.cpp: (WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents):

LayoutTests:

Added a regression test and rebaselined the test now that we got the pre-r267329 behavior back.

  • editing/execCommand/insert-list-nested-with-orphaned-expected.txt: Reverted the rebaseline in r267329.
  • editing/selection/delete-selection-with-disconnected-extent-expected.txt: Added.
  • editing/selection/delete-selection-with-disconnected-extent.html: Added.

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

10:42 AM Changeset in webkit [269197] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r269110. rdar://problem/70831200

[LFC][IFC] horizontalAlignmentOffset should check for empty run list
https://bugs.webkit.org/show_bug.cgi?id=218285
<rdar://problem/70730722>

Reviewed by Antti Koivisto.

LineBoxBuilder functions check for empty run list except this static helper.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp: (WebCore::Layout::horizontalAlignmentOffset):

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

10:42 AM Changeset in webkit [269196] by Alan Coon
  • 6 edits in branches/safari-611.1.4-branch/Source

Cherry-pick r269082. rdar://problem/70831193

Adopt the UIPointerInteraction API
https://bugs.webkit.org/show_bug.cgi?id=218266
<rdar://problem/70732850>

Reviewed by Wenson Hsieh.

Source/WebKit:

No new tests, just moving from deprecated SPI to API.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpInteraction]): (-[WKContentView cleanUpInteraction]): (-[WKContentView setUpPointerInteraction]): (-[WKContentView _pointerInteraction:regionForRequest:defaultRegion:completion:]): (-[WKContentView pointerRegionForPositionInformation:point:]): (-[WKContentView pointerInteraction:styleForRegion:]): (-[WKContentView setUpCursorInteraction]): Deleted. (-[WKContentView _cursorInteraction:regionForLocation:defaultRegion:completion:]): Deleted. (-[WKContentView cursorRegionForPositionInformation:point:]): Deleted. (-[WKContentView cursorInteraction:styleForRegion:modifiers:]): Deleted.

Source/WTF:

  • wtf/PlatformHave.h:

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

10:42 AM Changeset in webkit [269195] by Alan Coon
  • 3 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r269078. rdar://problem/70831181

Remove leftover DiagnosticLoggingKey after r268458
https://bugs.webkit.org/show_bug.cgi?id=218263
<rdar://problem/70738034>

Reviewed by Darin Adler.

Remove the leftover DiagnosticKey for ResourceLoadStatistics telemetry now that the
actual data is no longer generated.

  • page/DiagnosticLoggingKeys.cpp: (WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey): Deleted.
  • page/DiagnosticLoggingKeys.h:

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

10:42 AM Changeset in webkit [269194] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebInspectorUI

Cherry-pick r269071. rdar://problem/70831166

Web Inspector: REGRESSION(r266669): Uncaught Exception: TypeError: node.nodeType is not a function. (In 'node.nodeType()', 'node.nodeType' is undefined)
https://bugs.webkit.org/show_bug.cgi?id=218254

Reviewed by Joseph Pecoraro.

r266669 changed WI.DOMBreakpoint to use WI.DOMNode instead of DOM.NodeId, meaning that
WI.DOMTreeContentView.prototype._updateBreakpointStatus now expects a WI.DOMNode.

  • UserInterface/Views/DOMTreeContentView.js: (WI.DOMTreeContentView.prototype._domTreeElementAdded):

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

10:42 AM Changeset in webkit [269193] by Alan Coon
  • 8 edits in branches/safari-611.1.4-branch

Cherry-pick r268904. rdar://problem/70831149

Null check platformStrategies when making blob read stream for an NSURLRequest
https://bugs.webkit.org/show_bug.cgi?id=218112
<rdar://problem/70507102>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-22
Reviewed by Wenson Hsieh.

Source/WebCore:

r266187 made it possible to create a DataTransfer without a user event, which allows you to make a FileList,
which allows you to submit a multipart form without a user event that calls decidePolicyForNavigationAction
with a request that has a form data body that would make a blob upload stream. This causes us to use
platformStrategies in the UI process, which dereferences null. Since the blob only really exists in the network
process, just return a nil HTTPBody in such an exotic case instead of crashing.

Covered by an API test that would hit this crash. Web platform tests were insufficient because WebKitTestRunner does not
access WKNavigationAction.request, but Safari does.

  • platform/PlatformStrategies.cpp: (WebCore::hasPlatformStrategies):
  • platform/PlatformStrategies.h:
  • platform/network/FormData.cpp: (WebCore::FormData::containsBlobElement const): (WebCore::FormData::resolveBlobReferences):
  • platform/network/FormData.h:
  • platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::createHTTPBodyCFReadStream):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NavigationAction.mm: (TEST):

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

10:42 AM Changeset in webkit [269192] by Alan Coon
  • 7 edits
    1 add in branches/safari-611.1.4-branch

Cherry-pick r268878. rdar://problem/70831133

UIClient isn't notified when page muted state changes
https://bugs.webkit.org/show_bug.cgi?id=218085
<rdar://problem/70462420>

Reviewed by Youenn Fablet.

Source/WebKit:

API test: WKWebView.MediaMuted

  • UIProcess/API/C/WKPage.cpp: (WKPageGetMediaState): reportedMediaCaptureState -> reportedMediaState.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaCaptureState]): Ditto.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateReportedMediaCaptureState): Only record current capture state in m_reportedMediaCaptureState. m_delayStopCapturingReporting isn't necessary, remove it.
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::reportedMediaState const): Renamed from reportedMediaCaptureState to reflect what it returns. (WebKit::WebPageProxy::mediaStateFlags const): Deleted. (WebKit::WebPageProxy::reportedMediaCaptureState const): Deleted.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm: Added. (-[AudioStateObserver initWithWebView:]): (-[AudioStateObserver observeValueForKeyPath:ofObject:change:context:]): (-[AudioStateTestView setMuted:]): (TestWebKitAPI::TEST):

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

10:42 AM Changeset in webkit [269191] by Alan Coon
  • 11 edits
    1 copy
    1 add in branches/safari-611.1.4-branch/Source

Cherry-pick r268386. rdar://problem/70831174

Cocoa: Make WebGLLayer not dependent on GraphicsContextGLOpenGL
https://bugs.webkit.org/show_bug.cgi?id=217212
<rdar://problem/69876022>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-13
Reviewed by Dean Jackson.

Source/WebCore:

WebGLLayer was needlessly using GraphicsContextGLOpenGL.
This is problematic because WebGLLayer should work with
upcoming remote GraphicsContextGL implementation.

The prepare callgraph was:

GCGLOpenGL -> WebGLLayer -> GCGLOpenGL

Refactor it to be:

GCGLOpenGL -> WebGLLayer

Move the back buffer ownership to the GraphicsContextGLOpenGL.
Make the front buffer ownership explicit in WebGLLayer.
Move the EGL bindings ownerships of all buffers to
GraphicsContextGLOpenGL.

Make the WebGLLayer not use EGL or OpenGL, it does not
need and cannot use it as not all of its clients use OpenGL
(i.e. the above mentioned remote use-case).

Improves the memory usage by not allocating front buffers
unless needed. In case the canvas does not present, will
not allocate front buffers at all.

Improves error handling of the allocations and EGL bindings.

No new tests, a refactor.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::prepareTexture): (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
  • platform/graphics/angle/GraphicsContextGLANGLEUtilities.h: Added. (WebCore::ScopedRestoreTextureBinding::ScopedRestoreTextureBinding): (WebCore::ScopedRestoreTextureBinding::~ScopedRestoreTextureBinding):
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking): (WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking): (WebCore::GraphicsContextGLOpenGL::prepareForDisplay): (WebCore::GraphicsContextGLOpenGL::didDisplay):
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm: (-[WebGLLayer initWithClient:devicePixelRatio:]): (-[WebGLLayer copyImageSnapshotWithColorSpace:]): (-[WebGLLayer recycleBuffer]): (-[WebGLLayer prepareForDisplayWithContents:]): (-[WebGLLayer display]): (-[WebGLLayer detachClient]):
  • platform/graphics/cocoa/WebGLLayerClient.h: Copied from Source/WebCore/platform/graphics/cocoa/WebGLLayer.h. (WebCore::WebGLLayerClient::~WebGLLayerClient):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

Source/WebKit:

Removed unneeded inclusions of GraphicsContextGLOpenGL.h. The
file is now using non-public headers.

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/mac/WebPageMac.mm:

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

10:02 AM Changeset in webkit [269190] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Increase camera failing timer to 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218389

Reviewed by Eric Carlson.

From testing, 3 seconds is not always enough if getUserMedia is quickly called multiple times.
Let's increase to 30 seconds to give room for slow systems while still being able to identify failures.

  • platform/mediastream/mac/AVVideoCaptureSource.h:
9:52 AM Changeset in webkit [269189] by Jonathan Bedard
  • 2 edits in trunk

Github mirror ReadMe need to update
https://bugs.webkit.org/show_bug.cgi?id=218120
<rdar://problem/70861595>

Reviewed by Aakash Jain.

  • ReadMe.md:
9:04 AM Changeset in webkit [269188] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore
REGRESSION (r269146): ASSERTION FAILED: didNeedLayout
logicalHeight() == oldHeight in WebCore::RenderBlockFlow::ensureLineBoxes

https://bugs.webkit.org/show_bug.cgi?id=218350
<rdar://problem/70822708>

Reviewed by Zalan Bujtas.

Dropping of ensureLineBoxes call revealed a bug in text control style updates.

RenderTextControlSingleLine mutates style of the innerTextElement() renderer by altering the height property.
On style update this mutation is lost which causes ensureLineBoxes for innerTextElement() to miscompute block height
if RenderTextControlSingleLine layout has not happened before.

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::styleDidChange):

Don't zero the dimension properties of the innerTextElement() unnecessarily. Instead see of the underlying style has
actually changed and set the style only in that case. That will then trigger layout as needed.

8:34 AM Changeset in webkit [269187] by commit-queue@webkit.org
  • 10 edits
    65 copies
    129 moves
    26 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=218377

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-30
Reviewed by Frédéric Wang.

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream f8941337b6.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-003-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-004-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-005-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-005.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-006.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-006.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-007.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-007.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-008.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-008.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/auto-margins-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-011-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-011.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-012-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-012.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-013-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-013.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-014-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-014.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/auto-margins-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/auto-margins-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/auto-margins-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-008.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-010.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-013.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-016.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-008.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-017.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-018.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-010.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-011-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-011.tentative-expected.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-011.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-012-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-012.tentative-expected.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-012.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-013-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-019.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-013.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-016-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-016.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-016.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-017-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-017.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-017.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-018-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-018.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-018.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-019-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-019.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-019.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-006.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-021-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-007.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-021.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-022-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-008.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-022.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-023-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-023.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-024-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-010.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-024.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-025-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-025.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-026-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-026.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-027-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-027.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-028-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-028.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-005.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-001.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-006.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-002.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-007.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-008.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-007.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-002.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-008.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-004.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-010.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-011-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-005.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-011.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-012-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-012.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-013-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-007.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-013.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-014-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-008.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-014.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-015-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-009.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-015.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-016-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-010.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-016.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-017-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-017.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-018-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-012.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-018.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-019-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-019.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-020-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-020.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-021-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-021.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-022-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-022.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-023-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-023.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-024-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-024.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-007-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-007.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-008-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-008.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001.tentative-expected.txt: Removed.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002.tentative-expected.txt: Removed.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003.tentative-expected.txt: Removed.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-002.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-004.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-005.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-007-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-007.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-008-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-008.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-009-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-009.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-010-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-010.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-012-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-012.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-013-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-013.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-014-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-014.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-015-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-015.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-016-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-016.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-017-expected.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-017.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-018-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-018.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-019-expected.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-019.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-020-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-020.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-021-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-021.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.tentative.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-022-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-022.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-023-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-023.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-024-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-024.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-025-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-025.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-026-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-026.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-027-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.tentative-expected.xht.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-027.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/small-aspect-ratio-crash.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
8:32 AM Changeset in webkit [269186] by Chris Dumez
  • 39 edits
    2 copies
    2 adds
    1 delete in trunk/LayoutTests

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

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/resources tests from upstream 5dbb0a3fa631ef73da0.

  • web-platform-tests/resources/*: Updated.
  • web-platform-tests/console/idlharness.any-expected.txt:
  • web-platform-tests/console/idlharness.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta.sub.html:
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-long-crash-expected.txt:
  • web-platform-tests/css/css-text/text-indent/text-indent-long-line-crash-expected.txt:
  • web-platform-tests/css/cssom/idlharness-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/anchor-fragment-form-submit-withpath.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-navigation.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp.https-expected.txt:
  • web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
  • web-platform-tests/web-share/share-url-invalid.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-replaceTrack.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-track-stats.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html:
  • web-platform-tests/webrtc/legacy/RTCPeerConnection-addStream.https.html:
  • Rebaseline a few tests that have different output.
  • I resync'd from upstream a few tests that would have stopped running properly after the resources/ folder resync.

LayoutTests:

Rebaseline test that has different output.

  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt:
7:02 AM Changeset in webkit [269185] by Karl Rackler
  • 2 edits
    1 delete in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Mojave after r269174.

Unreviewed test gardening.

  • platform/mac-bigsur/editing/input/reveal-caret-of-multiline-input-expected.txt: Removed.
  • platform/mac-mojave/editing/input/reveal-caret-of-multiline-input-expected.txt:
6:59 AM Changeset in webkit [269184] by Simon Fraser
  • 42 edits in trunk/Source

Convert ScrollingTreeNode change flags to an OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=218374

Reviewed by Antti Koivisto.

Address the FIXME in ScrollingStateNode.h and use an OptionSet<> for the
ScrollingState tree change flags. This required moving them all into
the same enum class in ScrollingStateNode.

Source/WebCore:

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateFixedNode::updateConstraints):
(WebCore::ScrollingStateFixedNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateFrameScrollingNode::setEventTrackingRegions):
(WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateFrameScrollingNode::setLayoutViewport):
(WebCore::ScrollingStateFrameScrollingNode::setMinLayoutViewportOrigin):
(WebCore::ScrollingStateFrameScrollingNode::setMaxLayoutViewportOrigin):
(WebCore::ScrollingStateFrameScrollingNode::setOverrideVisualViewportSize):
(WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
(WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
(WebCore::ScrollingStateFrameScrollingNode::setRootContentsLayer):
(WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
(WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
(WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
(WebCore::ScrollingStateFrameScrollingNode::setVisualViewportIsSmallerThanLayoutViewport):
(WebCore::ScrollingStateFrameScrollingNode::setFixedElementsLayoutRelativeToFrame):
(WebCore::ScrollingStateFrameScrollingNode::setAsyncFrameOrOverflowScrollingEnabled):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::setPropertyChanged):
(WebCore::ScrollingStateNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateNode::appendChild):
(WebCore::ScrollingStateNode::insertChild):
(WebCore::ScrollingStateNode::removeChildAtIndex):
(WebCore::ScrollingStateNode::setLayer):
(WebCore::ScrollingStateNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateNode.h:

(WebCore::ScrollingStateNode::hasChangedProperties const):
(WebCore::ScrollingStateNode::hasChangedProperty const):
(WebCore::ScrollingStateNode::resetChangedProperties):
(WebCore::ScrollingStateNode::changedProperties const):
(WebCore::ScrollingStateNode::setChangedProperties):
(WebCore::ScrollingStateNode::setPropertyChangedInternal):
(WebCore::ScrollingStateNode::setPropertyChangedBit): Deleted.

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp:

(WebCore::ScrollingStateOverflowScrollProxyNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateOverflowScrollProxyNode::setOverflowScrollingNode):
(WebCore::ScrollingStateOverflowScrollProxyNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.h:
  • page/scrolling/ScrollingStatePositionedNode.cpp:

(WebCore::ScrollingStatePositionedNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStatePositionedNode::setRelatedOverflowScrollingNodes):
(WebCore::ScrollingStatePositionedNode::updateConstraints):
(WebCore::ScrollingStatePositionedNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStatePositionedNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setReachableContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollPosition):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setHorizontalSnapOffsets):
(WebCore::ScrollingStateScrollingNode::setVerticalSnapOffsets):
(WebCore::ScrollingStateScrollingNode::setHorizontalSnapOffsetRanges):
(WebCore::ScrollingStateScrollingNode::setVerticalSnapOffsetRanges):
(WebCore::ScrollingStateScrollingNode::setCurrentHorizontalSnapPointIndex):
(WebCore::ScrollingStateScrollingNode::setCurrentVerticalSnapPointIndex):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):
(WebCore::ScrollingStateScrollingNode::setIsMonitoringWheelEvents):
(WebCore::ScrollingStateScrollingNode::setScrollContainerLayer):
(WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
(WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarLayer):
(WebCore::ScrollingStateScrollingNode::setVerticalScrollbarLayer):
(WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::setPropertyChangesAfterReattach):
(WebCore::ScrollingStateStickyNode::updateConstraints):
(WebCore::ScrollingStateStickyNode::setPropertyChangedBitsAfterReattach): Deleted.

  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::nodeWasReattachedRecursive):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren):

  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::commitStateBeforeChildren):

  • page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNode.mm:

(WebCore::ScrollingTreeOverflowScrollProxyNode::commitStateBeforeChildren):

  • page/scrolling/cocoa/ScrollingTreePositionedNode.mm:

(WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):

  • page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:

(WebCore::ScrollingStateScrollingNode::setScrollerImpsFromScrollbars):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):

  • page/scrolling/nicosia/ScrollingTreeFixedNode.cpp:

(WebCore::ScrollingTreeFixedNode::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNode.cpp:

(WebCore::ScrollingTreeOverflowScrollProxyNode::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):

  • page/scrolling/nicosia/ScrollingTreePositionedNode.cpp:

(WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeStickyNode.cpp:

(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateNode>::encode):
(ArgumentCoder<ScrollingStateNode>::decode):
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateOverflowScrollProxyNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(ArgumentCoder<ScrollingStateOverflowScrollProxyNode>::decode):
(ArgumentCoder<ScrollingStateFixedNode>::encode):
(ArgumentCoder<ScrollingStateFixedNode>::decode):
(ArgumentCoder<ScrollingStateStickyNode>::encode):
(ArgumentCoder<ScrollingStateStickyNode>::decode):
(ArgumentCoder<ScrollingStatePositionedNode>::encode):
(ArgumentCoder<ScrollingStatePositionedNode>::decode):
(WebKit::dump):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::commitStateBeforeChildren):

5:32 AM Changeset in webkit [269183] by Lauro Moura
  • 2 edits in trunk/Tools

webkitpy: Sync package versions with WPT suite
https://bugs.webkit.org/show_bug.cgi?id=217826
<rdar://problem/70619091>

Reviewed by Carlos Garcia Campos.

Sync most packages. funcsics is already imported with a newer version
in webkitcorepy.

  • Scripts/webkitpy/init.py:
5:28 AM Changeset in webkit [269182] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Re-add Martin Robinson as a committer
https://bugs.webkit.org/show_bug.cgi?id=218376

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-10-30
Reviewed by Žan Doberšek.

  • Scripts/webkitpy/common/config/contributors.json: Updated with new status.
3:27 AM Changeset in webkit [269181] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix build error with release build with -DLOG_DISABLED=0
https://bugs.webkit.org/show_bug.cgi?id=218338

Add the proper ifdefs to solve it.

Patch by Alejandro G. Castro <alex@igalia.com> on 2020-10-30
Reviewed by Adrian Perez de Castro.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::build const):

3:27 AM Changeset in webkit [269180] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening

Remove tests marked as flaky for bug #198830 that have been consistently passing in the last
4000 GTK Release builds.

  • platform/gtk/TestExpectations:
1:40 AM Changeset in webkit [269179] by magomez@igalia.com
  • 4 edits in trunk/Source/WebCore

[GTK] Direct composited images may not be rendered after a window resize
https://bugs.webkit.org/show_bug.cgi?id=218292

Reviewed by Carlos Garcia Campos.

Ensure that valid buffers passed for ImageBackings are not destroyed until the
CoordinatedGraphicsScene consumes them.

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:

(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):

Note: See TracTimeline for information about the timeline view.