Timeline



Nov 8, 2019:

11:05 PM Changeset in webkit [252306] by Tadeu Zagallo
  • 6 edits in trunk/Source/JavaScriptCore

[WebAssembly] LLIntGenerator should not retain VirtualRegisters used for constants
https://bugs.webkit.org/show_bug.cgi?id=204028

Reviewed by Yusuke Suzuki.

The LLIntGenerator was keeping track of which RegisterIDs contained constants in order to materialize
the OSR entry data, since constants were not included in the OSR entry buffer. This was originally done
by adding the registers that contained constants to a vector and never reusing them. This is bad because
the bytecode generator reclaims registers by popping unused registers from the end of the vector and
stops as soon as it finds a used register. As it turns out, constants *should* be included in the buffer,
so we don't need to worry about whether registers contain constants and we can just stop retaining the
registers. An assertion was added to doOSREntry to ensure that the size of the scratch buffer matches the
size of the values to be written, which was not true before.
Additionally, add m_constantMap to LLIntGenerator to avoid adding duplicate constants to code blocks.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/BytecodeGeneratorBase.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLoop):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addConstant):
(JSC::Wasm::LLIntGenerator::addLoop):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::doOSREntry):

10:36 PM WebKitGoalsfor2020 edited by mjs@apple.com
(diff)
10:34 PM WebKitGoalsfor2020 edited by mjs@apple.com
(diff)
10:27 PM Changeset in webkit [252305] by yurys@chromium.org
  • 3 edits
    2 adds in trunk/LayoutTests

New test inspector-protocol/page/archive.html added in r154828 fails on EFL, Qt, GTK
https://bugs.webkit.org/show_bug.cgi?id=120682

Reviewed by Devin Rousso.

Generate custom expectations for inspector-protocol/page/archive.html on the platforms
where Page.archive is not supported yet.

  • inspector/page/archive.html: 'Not supported' is a valid response on some platforms.
  • platform/gtk/TestExpectations:
  • platform/gtk/inspector/page/archive-expected.txt: Added.
8:09 PM Changeset in webkit [252304] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix debug JSC tests failures due to missing exception check
https://bugs.webkit.org/show_bug.cgi?id=203936

  • tools/JSDollarVM.cpp:

(JSC::functionCallWithStackSize):

8:06 PM Changeset in webkit [252303] by beidson@apple.com
  • 21 edits
    2 copies
    4 adds in trunk

WKWebView Find-in-page API.
<rdar://problem/46971112> and https://bugs.webkit.org/show_bug.cgi?id=203872

Reviewed by Tim Horton.

Source/WebKit:

Covered by API tests.

  • Promote _findString:
  • Add a completion handler for it.
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKFindConfiguration.h: Added.
  • UIProcess/API/Cocoa/WKFindConfiguration.mm: Added.

(-[WKFindConfiguration init]):
(-[WKFindConfiguration copyWithZone:]):

  • UIProcess/API/Cocoa/WKFindResult.h: Added.
  • UIProcess/API/Cocoa/WKFindResult.mm: Added.

(-[WKFindResult init]):
(-[WKFindResult _initWithMatchFound:]):
(-[WKFindResult copyWithZone:]):

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

(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h:
  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::findStringCallback):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::findString):

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

(WebKit::WebPage::findString):

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

Tools:

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

(TEST):

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

(-[TestWKWebView selectionRangeHasStartOffset:endOffset:]):

7:45 PM Changeset in webkit [252302] by ysuzuki@apple.com
  • 34 edits
    2 moves in trunk/Source/JavaScriptCore

[JSC] Rename LargeAllocation to PreciseAllocation
https://bugs.webkit.org/show_bug.cgi?id=204040

Reviewed by Keith Miller.

After r252298, LargeAllocation is also used for small allocations.
This patch renames from LargeAllocation to PreciseAllocation since it reflects the behavior.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/CellContainer.cpp:

(JSC::CellContainer::isNewlyAllocated const):

  • heap/CellContainer.h:

(JSC::CellContainer::CellContainer):
(JSC::CellContainer::isMarkedBlock const):
(JSC::CellContainer::isPreciseAllocation const):
(JSC::CellContainer::preciseAllocation const):
(JSC::CellContainer::isLargeAllocation const): Deleted.
(JSC::CellContainer::largeAllocation const): Deleted.

  • heap/CellContainerInlines.h:

(JSC::CellContainer::vm const):
(JSC::CellContainer::isMarked const):
(JSC::CellContainer::noteMarked):
(JSC::CellContainer::assertValidCell const):
(JSC::CellContainer::cellSize const):
(JSC::CellContainer::weakSet const):
(JSC::CellContainer::aboutToMark):
(JSC::CellContainer::areMarksStale const):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::tryAllocateSlow):
(JSC::CompleteSubspace::reallocatePreciseAllocationNonVirtual):
(JSC::CompleteSubspace::reallocateLargeAllocationNonVirtual): Deleted.

  • heap/CompleteSubspace.h:
  • heap/Heap.cpp:

(JSC::Heap::sweepInFinalize):

  • heap/HeapCell.cpp:

(JSC::HeapCell::isLive):

  • heap/HeapCell.h:
  • heap/HeapCellInlines.h:

(JSC::HeapCell::isPreciseAllocation const):
(JSC::HeapCell::cellContainer const):
(JSC::HeapCell::preciseAllocation const):
(JSC::HeapCell::vm const):
(JSC::HeapCell::cellSize const):
(JSC::HeapCell::cellAttributes const):
(JSC::HeapCell::subspace const):
(JSC::HeapCell::isLargeAllocation const): Deleted.
(JSC::HeapCell::largeAllocation const): Deleted.

  • heap/HeapInlines.h:

(JSC::Heap::isMarked):
(JSC::Heap::testAndSetMarked):

  • heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):
(JSC::HeapUtil::isPointerGCObjectJSCell):
(JSC::HeapUtil::isValueGCObject):

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::tryReallocateMemory):

  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::add):
(JSC::IsoCellSet::remove):
(JSC::IsoCellSet::contains const):
(JSC::IsoCellSet::forEachMarkedCell):
(JSC::IsoCellSet::forEachMarkedCellInParallel):
(JSC::IsoCellSet::forEachLiveCell):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::tryAllocateFromLowerTier):
(JSC::IsoSubspace::sweepLowerTierCell):
(JSC::IsoSubspace::destroyLowerTierFreeList):

  • heap/IsoSubspace.h:
  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::freeMemory):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::sweepPreciseAllocations):
(JSC::MarkedSpace::prepareForAllocation):
(JSC::MarkedSpace::enablePreciseAllocationTracking):
(JSC::MarkedSpace::prepareForConservativeScan):
(JSC::MarkedSpace::prepareForMarking):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::beginMarking):
(JSC::MarkedSpace::endMarking):
(JSC::MarkedSpace::objectCount):
(JSC::MarkedSpace::size):
(JSC::MarkedSpace::sweepLargeAllocations): Deleted.
(JSC::MarkedSpace::enableLargeAllocationTracking): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace:: const):
(JSC::MarkedSpace::preciseAllocationsNurseryOffset const):
(JSC::MarkedSpace::preciseAllocationsOffsetForThisCollection const):
(JSC::MarkedSpace::preciseAllocationsForThisCollectionBegin const):
(JSC::MarkedSpace::preciseAllocationsForThisCollectionEnd const):
(JSC::MarkedSpace::preciseAllocationsForThisCollectionSize const):
(JSC::MarkedSpace::largeAllocationsNurseryOffset const): Deleted.
(JSC::MarkedSpace::largeAllocationsOffsetForThisCollection const): Deleted.
(JSC::MarkedSpace::largeAllocationsForThisCollectionBegin const): Deleted.
(JSC::MarkedSpace::largeAllocationsForThisCollectionEnd const): Deleted.
(JSC::MarkedSpace::largeAllocationsForThisCollectionSize const): Deleted.

  • heap/MarkedSpaceInlines.h:

(JSC::MarkedSpace::forEachLiveCell):
(JSC::MarkedSpace::forEachDeadCell):

  • heap/PreciseAllocation.cpp: Renamed from Source/JavaScriptCore/heap/LargeAllocation.cpp.

(JSC::isAlignedForPreciseAllocation):
(JSC::PreciseAllocation::tryCreate):
(JSC::PreciseAllocation::tryReallocate):
(JSC::PreciseAllocation::createForLowerTier):
(JSC::PreciseAllocation::reuseForLowerTier):
(JSC::PreciseAllocation::PreciseAllocation):
(JSC::PreciseAllocation::~PreciseAllocation):
(JSC::PreciseAllocation::lastChanceToFinalize):
(JSC::PreciseAllocation::shrink):
(JSC::PreciseAllocation::visitWeakSet):
(JSC::PreciseAllocation::reapWeakSet):
(JSC::PreciseAllocation::flip):
(JSC::PreciseAllocation::isEmpty):
(JSC::PreciseAllocation::sweep):
(JSC::PreciseAllocation::destroy):
(JSC::PreciseAllocation::dump const):
(JSC::PreciseAllocation::assertValidCell const):

  • heap/PreciseAllocation.h: Renamed from Source/JavaScriptCore/heap/LargeAllocation.h.

(JSC::PreciseAllocation::fromCell):
(JSC::PreciseAllocation::isPreciseAllocation):
(JSC::PreciseAllocation::headerSize):
(JSC::PreciseAllocation::basePointer const):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendHiddenSlowImpl):
(JSC::SlotVisitor::appendToMarkStack):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::appendUnbarriered):
(JSC::SlotVisitor::appendHiddenUnbarriered):

  • heap/Subspace.h:
  • heap/SubspaceInlines.h:

(JSC::Subspace::forEachPreciseAllocation):
(JSC::Subspace::forEachMarkedCell):
(JSC::Subspace::forEachMarkedCellInParallel):
(JSC::Subspace::forEachLiveCell):
(JSC::Subspace::forEachLargeAllocation): Deleted.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::visit):

  • heap/WeakSet.cpp:

(JSC::WeakSet::sweep):

  • llint/LowLevelInterpreter.asm:
  • runtime/ButterflyInlines.h:

(JSC::Butterfly::reallocArrayRightIfPossible):

  • runtime/OptionsList.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):

  • tools/VMInspector.cpp:

(JSC::VMInspector::isInHeap):

  • tools/VMInspectorInlines.h:

(JSC::VMInspector::verifyCell):

7:29 PM Changeset in webkit [252301] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Add back/forward cache quirk for Vimeo.com
https://bugs.webkit.org/show_bug.cgi?id=204025
<rdar://problem/56996057>

Reviewed by Antti Koivisto.

Vimeo.com used to bypass the back/forward cache by serving "Cache-Control: no-store" over HTTPS.
We started caching such content in r250437 but the vimeo.com content unfortunately is not currently compatible
because it changes the opacity of its body to 0 when navigating away and fails to restore the original opacity
when coming back from the back/forward cache (e.g. in 'pageshow' event handler).

To address the issue, this patch introduces a quirk to restore pre-r250437 on Vimeo.com, until they get
a chance to fix their content.

  • history/BackForwardCache.cpp:

(WebCore::canCacheFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::siteSpecificQuirkKey):

  • page/DiagnosticLoggingKeys.h:
  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassBackForwardCache const):

  • page/Quirks.h:
7:02 PM Changeset in webkit [252300] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

SWServerWorker in redundant state do not need to process messages from the context process
https://bugs.webkit.org/show_bug.cgi?id=204019

Reviewed by Chris Dumez.

When a service worker is marked as redundant in network process, it might still receive some messages like didFinishActivation or didFinishInstall.
In that state, we do not need to process these messages.
Did some refactoring to directly pass the service worker to the job queue.
This makes it clear the registration and service worker are the correct ones.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::didFinishInstall):
Pass the worker instead of its identifier.

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::didFinishInstall):
Now that we are given the service worker, get its registration directly.

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::didFinishInstall):
Exit early in redundant state.
(WebCore::SWServerWorker::didFinishActivation):
Exit early in redundant state.

6:44 PM Changeset in webkit [252299] by youenn@apple.com
  • 5 edits in trunk

XMLHttpRequestUpload should be exposed in dedicated workers
https://bugs.webkit.org/show_bug.cgi?id=203901

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
  • web-platform-tests/xhr/idlharness.any.worker-expected.txt:

Source/WebCore:

Covered by rebased test.

  • xml/XMLHttpRequestUpload.idl:
5:37 PM Changeset in webkit [252298] by ysuzuki@apple.com
  • 28 edits in trunk/Source/JavaScriptCore

[JSC] Make IsoSubspace scalable
https://bugs.webkit.org/show_bug.cgi?id=201908

Reviewed by Keith Miller.

This patch introduces lower-tier into IsoSubspace so that we can avoid allocating MarkedBlock
if a certain type of object is not allocated so many. This optimization allows us apply IsoSubspace
more aggressively to various types of objects without introducing memory regression even if such a
type of object is allocated so frequently.

We use LargeAllocation for these lower-tier objects. Each IsoSubspace holds up to 8 lower-tier objects
allocated via LargeAllocation. We use this special LargeAllocation when we tend to allocate small # of cells
for this type. Specifically, what we are doing right now is, (1) first, try to allocate in an existing
MarkedBlock (there won't be one to start), and (2) then, try to allocate in LargeAllocation, and if we cannot
allocate lower-tier objects, (3) finally we allocate a new MarkedBlock. Once this LargeAllocation is allocated
to a certain type, we do not deallocate it until VM is destroyed, so that we can keep IsoSubspace's
characteristics: once an address is assigned to a certain type, we continue using this address only for this type.

To introduce this optimization, we need to remove an restriction that no callee cells can be a LargeAllocation.
This also turns out that SamplingProfiler's isValueGCObject is heavily relies on that all the callee is small-sized.
isValueGCObject relies on the thing that MarkedSpace::m_largeAllocations is sorted. But this is not true since
this vector is sorted only when conservative scan happens. And further, this vector is only partially sorted: we
sort only an eden part part of this vector. So we cannot use this vector to implement isValueGCObject in the sampling
profiler. Instead we register HeapCell address into a hash-set in MarkedSpace. Since we do not need to find a pointer
that is pointing at the middle of the JSCell in sampling profiler, just registering cell address is enough. And we
maintain this hash-set only when sampling profiler is enabled to save memory in major cases.

We also fix the code that is relying on that JSString is always allocated in MarkedBlock. And we also fix PackedCellPtr's
assumption that CodeBlock is always allocated in MarkedBlock.

We also make sizeof(LargeAllocation) small since it is now used for non-large allocations.

JetStream2 and Speedometer2 are neutral. RAMification shows 0.6% progression on iOS devices.

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::BlockDirectory):

  • heap/BlockDirectory.h:
  • heap/BlockDirectoryInlines.h:

(JSC::BlockDirectory::tryAllocateFromLowerTier):

  • heap/CompleteSubspace.cpp:

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

  • heap/Heap.cpp:

(JSC::Heap::dumpHeapStatisticsAtVMDestruction):
(JSC::Heap::addCoreConstraints):

  • heap/HeapUtil.h:

(JSC::HeapUtil::isPointerGCObjectJSCell):
(JSC::HeapUtil::isValueGCObject):

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::tryAllocateMemory):
(JSC::IsoAlignedMemoryAllocator::freeMemory):
(JSC::IsoAlignedMemoryAllocator::tryReallocateMemory):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::~IsoCellSet):

  • heap/IsoCellSet.h:
  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::add):
(JSC::IsoCellSet::remove):
(JSC::IsoCellSet::contains const):
(JSC::IsoCellSet::forEachMarkedCell):
(JSC::IsoCellSet::forEachMarkedCellInParallel):
(JSC::IsoCellSet::forEachLiveCell):
(JSC::IsoCellSet::sweepLowerTierCell):

  • heap/IsoSubspace.cpp:

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

  • heap/IsoSubspace.h:
  • heap/LargeAllocation.cpp:

(JSC::LargeAllocation::tryReallocate):
(JSC::LargeAllocation::createForLowerTier):
(JSC::LargeAllocation::reuseForLowerTier):
(JSC::LargeAllocation::LargeAllocation):

  • heap/LargeAllocation.h:

(JSC::LargeAllocation::lowerTierIndex const):
(JSC::LargeAllocation::isLowerTier const):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::Handle):
(JSC::MarkedBlock::Handle::stopAllocating):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::forEachCell):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::freeMemory):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::sweepLargeAllocations):
(JSC::MarkedSpace::enableLargeAllocationTracking):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace:: const):

  • heap/PackedCellPtr.h:

(JSC::PackedCellPtr::PackedCellPtr):

  • heap/Subspace.h:
  • heap/WeakSet.cpp:

(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::findAllocator):
(JSC::WeakSet::addAllocator):

  • heap/WeakSet.h:

(JSC::WeakSet::WeakSet):
(JSC::WeakSet::resetAllocator):
(JSC::WeakSet::container const): Deleted.
(JSC::WeakSet::setContainer): Deleted.

  • heap/WeakSetInlines.h:

(JSC::WeakSet::allocate):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::InternalFunction):

  • runtime/JSCallee.cpp:

(JSC::JSCallee::JSCallee):

  • runtime/JSString.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::releaseStackTraces):
(JSC::SamplingProfiler::stackTracesAsJSON):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/SamplingProfiler.h:
5:09 PM Changeset in webkit [252297] by jiewen_tan@apple.com
  • 4 edits in trunk/Source

[WebAuthn] Add quirk needed to support legacy Google NFC Titan security keys
https://bugs.webkit.org/show_bug.cgi?id=204024
<rdar://problem/56962320>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests.

  • Modules/webauthn/fido/FidoConstants.h:

Source/WebKit:

Some legacy U2F keys such as Google T1 Titan don't understand the FIDO applet command. Instead,
they are configured to only have the FIDO applet. Therefore, when the above command fails, we
use U2F_VERSION command to double check if the connected tag can actually speak U2F, indicating
we are interacting with one of these legacy keys.

  • UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:

(WebKit::fido::compareVersion):
(WebKit::fido::trySelectFidoApplet):
(WebKit::NfcConnection::transact const):
(WebKit::NfcConnection::didDetectTags):

4:52 PM Changeset in webkit [252296] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Tools

Cherry-pick r252061. rdar://problem/55854631

TestWebKitAPI.WebKit.DocumentEditingContext is failing on iPad
https://bugs.webkit.org/show_bug.cgi?id=203828
<rdar://problem/55854631>

Reviewed by Myles Maxfield.

Specify both a font size and line height when using Ahem as per [1]. Otherwise, text may be
rendered inconsistently. Plus, disable text-autosizing and fix viewport to make test result
consistent on both iPhone and iPad.

[1] <https://web-platform-tests.org/writing-tests/ahem.html>

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm: (applyStyle): Remove unused style for <iframe>s and fix up parameter name to conform to style guide. (applyAhemStyle): Set -webkit-text-size-adjust to 100% to disable auto-sizing. Fix viewport width and initial scale to ensure the result is the same on both iPhone and iPad. Also remove unused style for <iframe>s and renamed parameter name to conform to style guide. (TEST):

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

4:52 PM Changeset in webkit [252295] by Alan Coon
  • 5 edits
    2 adds in tags/Safari-609.1.10.1/Tools

Cherry-pick r252023. rdar://problem/55854631

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

Reviewed by Myles C. Maxfield.

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

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

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

will produce output like this when it fails:

Expected equality of these values:

CGRectMake(138, 0, 23, 24)

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

rects.firstObject.CGRectValue

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

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add source files.
  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm: Write in terms of EXPECT_EQ() now that it just works when passed CGRects.
  • TestWebKitAPI/cocoa/TestCocoa.h: Added.
  • TestWebKitAPI/cocoa/TestCocoa.mm: Added. (ostreamRectCommon): (operator<<): (operator==):

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

4:52 PM Changeset in webkit [252294] by Alan Coon
  • 10 edits
    2 copies
    5 moves
    48 adds
    3 deletes in tags/Safari-609.1.10.1

Cherry-pick r252202. rdar://problem/56270900

Web Inspector: REGRESSION(r250087): inspector/model/remote-object.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=202934
<rdar://problem/56270900>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

In r250087, the inspector injected script was changed so that remote objects actually
iterate the keys of an array and generate a property descriptor for each. While this worked
fine (and was performant) for fetching remote objects, this was not efficient when creating
object previews, as that path wouldn't be limited by any sort of fetchCount, meaning that
a descriptor for every index would be created even though only the first 10 would be used.

Refactor the inspector injected script code so that both the fetch and preview paths only
examine exactly the number of properties desired instead of considering all of them and then
slicing to fit.

  • inspector/InjectedScriptSource.js: (InjectedScript.prototype._getProperties): (InjectedScript.prototype._forEachPropertyDescriptor): Added. (InjectedScript.prototype._forEachPropertyDescriptor.createFakeValueDescriptor): Added. (InjectedScript.prototype._forEachPropertyDescriptor.processDescriptor): Added. (InjectedScript.prototype._forEachPropertyDescriptor.processProperty): Added. (RemoteObject.prototype._generatePreview): (RemoteObject.prototype._appendPropertyPreview): Added. (RemoteObject.prototype._appendPropertyPreview.appendPreview): Added. (InjectedScript.prototype._propertyDescriptors): Deleted. (InjectedScript.prototype._propertyDescriptors.processProperties): Deleted. (InjectedScript.prototype._propertyDescriptors.arrayIndexPropertyNames): Deleted. (RemoteObject.prototype._appendPropertyPreviews): Deleted.

Source/WebInspectorUI:

  • UserInterface/Views/ObjectTreeView.js: (WI.ObjectTreeView.addShowMoreIfNeeded): Drive-by: ensure that the indeterminate progress spinner is added after the last button.

LayoutTests:

Split inspector/model/remote-object.html into separate tests for each type of object being
tested, as well as specialized tests for extremely large values. This allows us to better
know which specific expression can cause a timeout.

  • inspector/model/remote-object.html: Removed.
  • inspector/model/remote-object-expected.txt: Removed.
  • platform/mac-wk1/inspector/model/remote-object-expected.txt: Removed.
  • inspector/model/remote-object/array.html: Added.
  • inspector/model/remote-object/array-expected.txt: Added.
  • inspector/model/remote-object/array-large.html: Added.
  • inspector/model/remote-object/array-large-expected.txt: Added.
  • inspector/model/remote-object/boolean.html: Added.
  • inspector/model/remote-object/boolean-expected.txt: Added.
  • inspector/model/remote-object/class.html: Added.
  • inspector/model/remote-object/class-expected.txt: Added.
  • inspector/model/remote-object/date.html: Added.
  • inspector/model/remote-object/date-expected.txt: Added.
  • inspector/model/remote-object/error.html: Added.
  • inspector/model/remote-object/error-expected.txt: Added.
  • inspector/model/remote-object/function.html: Added.
  • inspector/model/remote-object/function-expected.txt: Added.
  • inspector/model/remote-object/immutable.html: Added.
  • inspector/model/remote-object/immutable-expected.txt: Added.
  • inspector/model/remote-object/iterator.html: Added.
  • inspector/model/remote-object/iterator-expected.txt: Added.
  • inspector/model/remote-object/iterator-large.html: Added.
  • inspector/model/remote-object/iterator-large-expected.txt: Added.
  • inspector/model/remote-object/map.html: Added.
  • inspector/model/remote-object/map-expected.txt: Added.
  • inspector/model/remote-object/map-large.html: Added.
  • inspector/model/remote-object/map-large-expected.txt: Added.
  • inspector/model/remote-object/null.html: Added.
  • inspector/model/remote-object/null-expected.txt: Added.
  • inspector/model/remote-object/number.html: Added.
  • inspector/model/remote-object/number-expected.txt: Added.
  • platform/mac-wk1/inspector/number-expected.txt: Added.
  • inspector/model/remote-object/object.html: Added.
  • inspector/model/remote-object/object-expected.txt: Added.
  • inspector/model/remote-object/object-large.html: Added.
  • inspector/model/remote-object/object-large-expected.txt: Added.
  • inspector/model/remote-object/promise.html: Added.
  • inspector/model/remote-object/promise-expected.txt: Added.
  • inspector/model/remote-object/regexp.html: Added.
  • inspector/model/remote-object/regexp-expected.txt: Added.
  • inspector/model/remote-object/set.html: Added.
  • inspector/model/remote-object/set-expected.txt: Added.
  • inspector/model/remote-object/set-large.html: Added.
  • inspector/model/remote-object/set-large-expected.txt: Added.
  • inspector/model/remote-object/string.html: Added.
  • inspector/model/remote-object/string-expected.txt: Added.
  • inspector/model/remote-object/string-large.html: Added.
  • inspector/model/remote-object/string-large-expected.txt: Added.
  • inspector/model/remote-object/undefined.html: Added.
  • inspector/model/remote-object/undefined-expected.txt: Added.
  • inspector/model/remote-object/dom.html: Renamed from LayoutTests/inspector/model/remote-object-dom.html.
  • inspector/model/remote-object/dom-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-dom-expected.txt.
  • inspector/model/remote-object/iterators-mutated.html: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators.html.
  • inspector/model/remote-object/iterators-mutated-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators-expected.txt.
  • inspector/model/remote-object/resources/remote-object-utilities.js: Renamed from LayoutTests/inspector/model/resources/remote-object-utilities.js.
  • inspector/runtime/getDisplayableProperties.html:
  • inspector/runtime/getDisplayableProperties-expected.txt:
  • inspector/runtime/getProperties.html:
  • inspector/runtime/getProperties-expected.txt: Drive-by: fix assertion for when the __proto__ is included if fetchStart is 0.

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

4:52 PM Changeset in webkit [252293] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Source/WebKit

Cherry-pick r252183. rdar://problem/54769320

ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext(uint64_t)
https://bugs.webkit.org/show_bug.cgi?id=203918

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-07
Reviewed by Jer Noble.

Postpone the transition to exit fullscreen of a video element
before the previous transition of fullscreen mode change is completed.

Fix a flakey layout test (media/video-autoplay.html). No new test is needed.

  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

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

4:52 PM Changeset in webkit [252292] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.1

Cherry-pick r252172. rdar://problem/56580680

REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203366
<rdar://problem/56580680>

Reviewed by Simon Fraser.

Source/WebKit:

WKBundlePageForceRepaint may fail to do synchronous layer flush if there is a pending layer flush in-flight and waiting
for completion message from UI process. Layer flush also flushes pending editor state so that doesn't get done either.
This may cause randomness in test results.

In this case the randomness is the switch between simple and complex line layout, triggered by editor state flush. The results
between line layout paths are observably identical but produce slightly different render tree dumps.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageFlushPendingEditorStateUpdate):
  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

Add a function for forcing editor state flush, called from the test runner dump() function.

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::dump):

LayoutTests:

  • platform/ios/TestExpectations:

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

4:52 PM Changeset in webkit [252291] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Source/bmalloc

Cherry-pick r252157. rdar://problem/56761470

Unreviewed, roll-out r251268 due to RAMification regression
https://bugs.webkit.org/show_bug.cgi?id=203121

The code was the bug, but it would be possible that this bug accidentally makes our policy better.
We should clean up to make this bug's behavior default. And we should look for a bit larger interval here.

  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::threadRunLoop):

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

4:52 PM Changeset in webkit [252290] by Alan Coon
  • 3 edits
    2 adds in tags/Safari-609.1.10.1

Cherry-pick r252156. rdar://problem/55821375

Screen locks while watching previously-muted-then-unmuted video
https://bugs.webkit.org/show_bug.cgi?id=203906
<rdar://problem/55821375>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-unmuted-after-play-holds-sleep-assertion.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setMuted):

LayoutTests:

  • media/video-unmuted-after-play-holds-sleep-assertion-expected.txt: Added.
  • media/video-unmuted-after-play-holds-sleep-assertion.html: Added.

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

4:52 PM Changeset in webkit [252289] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/LayoutTests

Cherry-pick r252146. rdar://problem/56425901

[ Mac Debug WK1 ] REGRESSION (r251262?): fast/scrolling/latching/scroll-select-bottom-test.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=203176
rdar://problem/56425901

Unreviewed test gardening.

This hasn't been flaky since r251565 when a related r251261 regression/bug was fixed.
I was also able to run it locally against r252065 a total of 1,100 times with no failures.

  • platform/mac-wk1/TestExpectations: Removed scroll-select-bottom-test.html.

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

4:52 PM Changeset in webkit [252288] by Alan Coon
  • 10 edits in tags/Safari-609.1.10.1/Source

Cherry-pick r252124. rdar://problem/56524251

WTF::RunLoop should not depend on isMainThread() idiom.
https://bugs.webkit.org/show_bug.cgi?id=203873
<rdar://problem/56524251>

Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectScriptDebugServer.cpp: (Inspector::JSGlobalObjectScriptDebugServer::runLoopMode):
  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: (Inspector::RemoteTargetInitializeGlobalQueue): (Inspector::RemoteConnectionToTarget::setupRunLoop): (Inspector::RemoteConnectionToTarget::teardownRunLoop):

Source/WTF:

The isMainThread() idiom is only meaningful for WebCore. It is less meaningful
for JSC since a VM instance can be entered from multiple threads, as long as only
one thread enters it at any time. Hence, the concept of a main thread doesn't
make sense at the JSC level.

Since r251036, we started using a WTF::String to represent the RunLoop mode.
This caused problems for JSC clients when USE(CF) since it necessitated the use of
StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
the WTF::String.

To fix this problem, we should restore the original behavior of using CFStringRefs
as the RunLoop mode token.

  • wtf/RunLoop.h: (WTF::RunLoop::cycle): Deleted.
  • wtf/cf/RunLoopCF.cpp: (WTF::RunLoop::cycle):
  • wtf/generic/RunLoopGeneric.cpp: (WTF::RunLoop::cycle):
  • wtf/glib/RunLoopGLib.cpp: (WTF::RunLoop::cycle):
  • wtf/win/RunLoopWin.cpp: (WTF::RunLoop::cycle):

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

4:52 PM Changeset in webkit [252287] by Alan Coon
  • 5 edits in tags/Safari-609.1.10.1

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

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

Reviewed by Chris Dumez.

Source/WebKit:

Existing tests skipped.

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

  • NetworkProcess/cache/NetworkCacheStorage.h:

Bumps the version to force a clean cache.

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

Skips setting needsIsolatedSession.

LayoutTests:

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

  • platform/wk2/TestExpectations:

Skipped the associated tests.

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

4:51 PM Changeset in webkit [252286] by Alan Coon
  • 3 edits in tags/Safari-609.1.10.1/Source/WebCore

Cherry-pick r252077. rdar://problem/56891110

Adding logging to diagnose crashes resulting from provisional document loader unexpectedly being nullptr
https://bugs.webkit.org/show_bug.cgi?id=203837

Reviewed by Geoffrey Garen.

Added various logging for DocumentLoader and FrameLoader to figure out why
FrameLoader::m_provisionalDocumentLoader can be nullptr in some cases.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::setRequest): (WebCore::DocumentLoader::willSendRequest):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::setupForReplace): (WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck): (WebCore::FrameLoader::stopAllLoaders): (WebCore::FrameLoader::stopForBackForwardCache): (WebCore::FrameLoader::clearProvisionalLoad): (WebCore::FrameLoader::transitionToCommitted): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

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

4:51 PM Changeset in webkit [252285] by Alan Coon
  • 4 edits
    2 adds in tags/Safari-609.1.10.1

Cherry-pick r252070. rdar://problem/56559648

Content can disappear with a combination of <video> with controls and clipping
https://bugs.webkit.org/show_bug.cgi?id=203834
Source/WebCore:

rdar://problem/56559648

Reviewed by Zalan Bujtas.

<video> with controls triggered a bug where a backing-sharing layer also claimed
that it didn't need any backing store. RenderLayerCompositor::requiresOwnBackingStore()
could early-return with 'false' if a layer had an indirect compositing reason of "Clipping",
while also backing-sharing. We need to check for backing-sharing first.

Test: compositing/shared-backing/clipping-and-shared-backing.html

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::setBackingSharingLayers):
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

LayoutTests:

Reviewed by Zalan Bujtas.

  • compositing/shared-backing/clipping-and-shared-backing-expected.html: Added.
  • compositing/shared-backing/clipping-and-shared-backing.html: Added.

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

4:51 PM Changeset in webkit [252284] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Source/WebCore

Cherry-pick r252059. rdar://problem/56889717

http/tests/media/track-in-band-hls-metadata.html sometimes crashes after r251626
https://bugs.webkit.org/show_bug.cgi?id=203849
<rdar://problem/56889717>

Reviewed by Youenn Fablet.

No new tests, fixes existing test.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]): Return early if m_player has been cleared. (-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]): Ditto.

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

4:51 PM Changeset in webkit [252283] by Alan Coon
  • 3 edits in tags/Safari-609.1.10.1/LayoutTests

Cherry-pick r252051. rdar://problem/56080440

[iOS] Update fast/forms/ios/file-upload-panel.html test and results
https://bugs.webkit.org/show_bug.cgi?id=203823
<rdar://problem/56080440>

Reviewed by Youenn Fablet.

  • fast/forms/ios/file-upload-panel-expected.txt:
  • fast/forms/ios/file-upload-panel.html:

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

4:51 PM Changeset in webkit [252282] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/LayoutTests

Cherry-pick r252042. rdar://problem/56123067

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

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

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/double-tap-for-double-click3.html:

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

4:51 PM Changeset in webkit [252281] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/LayoutTests

Cherry-pick r252041. rdar://problem/55664976

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

Reviewed by Wenson Hsieh.

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

  • fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html:

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

4:51 PM Changeset in webkit [252280] by Alan Coon
  • 4 edits in tags/Safari-609.1.10.1/Source/WebCore

Cherry-pick r252022. rdar://problem/56550488

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

Reviewed by Zalan Bujtas.

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

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

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

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

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

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

  • page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::willNotProceedWithFixedObservationTimeWindow): (WebCore::ContentChangeObserver::adjustObservedState):
  • page/ios/ContentChangeObserver.h:
  • page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::mouseMoved):

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

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

4:51 PM Changeset in webkit [252279] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Source/JavaScriptCore

Cherry-pick r252006. rdar://problem/56840002

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

Reviewed by Saam Barati.

  • runtime/SamplingProfiler.cpp: (JSC::FrameWalker::resetAtMachineFrame):

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

4:51 PM Changeset in webkit [252278] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.1/Source/WebCore

Cherry-pick r251992. rdar://problem/56648063

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

Reviewed by Youenn Fablet.

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

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

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

4:51 PM Changeset in webkit [252277] by Alan Coon
  • 7 edits
    1 add in tags/Safari-609.1.10.1

Cherry-pick r251978. rdar://problem/56840003

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

Reviewed by Yusuke Suzuki.

JSTests:

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

Source/JavaScriptCore:

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

  • wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::didFinishParsingLocals):
  • wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::didFinishParsingLocals):
  • wasm/WasmFunctionParser.h: (JSC::Wasm::FunctionParser<Context>::parse):
  • wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::addLocal): (JSC::Wasm::LLIntGenerator::didFinishParsingLocals):
  • wasm/WasmValidate.cpp: (JSC::Wasm::Validate::didFinishParsingLocals):

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

4:39 PM Changeset in webkit [252276] by commit-queue@webkit.org
  • 11 edits
    20 moves
    3 adds in trunk

Entering/Exiting Picture-in-Picture mode through webkitSetPresentationMode() does not fire events (enterpictureinpicture and leavepictureinpicture) defined in the spec
https://bugs.webkit.org/show_bug.cgi?id=203989

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-08
Reviewed by Eric Carlson.

Source/WebCore:

Instantiate a HTMLVideoElementPictureInPicture object when we create a new video element
so that the events defined in the spec will be fired no matter which interface is used
to enter/exit the Picture-in-Picture mode.

Test: media/picture-in-picture/picture-in-picture-events.html

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::providePictureInPictureTo):

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.h:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::create):

LayoutTests:

Move all layout tests for Picture-in-Picture to folder media/picture-in-picture.
Add a layout test to verify the events defined in the spec are fired when we call the webkit prefixed API.
Update TestExpectations files since webkit.org/b/203614 has been fixed.

  • TestExpectations:
  • media/picture-in-picture/picture-in-picture-api-element-attributes-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-element-attributes-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-element-attributes.html: Renamed from LayoutTests/media/picture-in-picture-api-element-attributes.html.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-1-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-1-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-1.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-1.html.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-2-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-2-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-2.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-2.html.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-3-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-3-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-3.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-3.html.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-4-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-4-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-enter-pip-4.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-4.html.
  • media/picture-in-picture/picture-in-picture-api-events-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-pip-events-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-events.html: Renamed from LayoutTests/media/picture-in-picture-api-pip-events.html.
  • media/picture-in-picture/picture-in-picture-api-exit-pip-1-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-1-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-exit-pip-1.html: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-1.html.
  • media/picture-in-picture/picture-in-picture-api-exit-pip-2-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-2-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-exit-pip-2.html: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-2.html.
  • media/picture-in-picture/picture-in-picture-api-pip-window-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-pip-window-expected.txt.
  • media/picture-in-picture/picture-in-picture-api-pip-window.html: Renamed from LayoutTests/media/picture-in-picture-api-pip-window.html.
  • media/picture-in-picture/picture-in-picture-events-expected.txt: Added.
  • media/picture-in-picture/picture-in-picture-events.html: Added.
  • media/picture-in-picture/picture-in-picture-interruption-expected.txt: Renamed from LayoutTests/media/picture-in-picture-interruption-expected.txt.
  • media/picture-in-picture/picture-in-picture-interruption.html: Renamed from LayoutTests/media/picture-in-picture-interruption.html.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ipad/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:32 PM Changeset in webkit [252275] by Jonathan Bedard
  • 2 edits in trunk/Tools

Simulators having trouble launching apps after booting
<rdar://problem/57032042>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess._start): Temporarily increase timeout to help out bots.

4:20 PM Changeset in webkit [252274] by Jonathan Bedard
  • 22 edits in trunk/Source/WebKit

Unreviewed, rolling out r252260.

Breaks half of API tests

Reverted changeset:

"Make DownloadID an ObjectIdentifier"
https://bugs.webkit.org/show_bug.cgi?id=203962
https://trac.webkit.org/changeset/252260

4:11 PM Changeset in webkit [252273] by Matt Lewis
  • 46 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r252229.

This caused internal failures.

Reverted changeset:

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

4:10 PM WPE/Releasing edited by Adrian Perez de Castro
(diff)
4:03 PM Changeset in webkit [252272] by Jonathan Bedard
  • 4 edits
    4 adds in trunk/Tools

results.webkit.org: List failing tests for criteria
https://bugs.webkit.org/show_bug.cgi?id=203905

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/controller/api_routes.py:

(APIRoutes.init): Add FailureController and /failures endpoint.

  • resultsdbpy/resultsdbpy/controller/failure_controller.py: Added.

(FailureController): Added FailureController object to drive /failure endpoint.
(FailureController.init):
(FailureController.failures): Return a json list of failures for a range.

  • resultsdbpy/resultsdbpy/controller/failure_controller_unittest.py: Added.

(FailureControllerTest): Test the /failure API.
(FailureControllerTest.setup_webserver):
(FailureControllerTest.test_failures_collapsed):
(FailureControllerTest.test_unexpected_failures_collapsed):
(FailureControllerTest.test_failures):
(FailureControllerTest.test_unexpected_failures):
(FailureControllerTest.test_failure_by_time):

  • resultsdbpy/resultsdbpy/model/failure_context.py: Added.

(FailureContext): Database access to tables recording test failures.
(FailureContext.TestFailuresBase):
(FailureContext.TestFailuresBase.unpack):
(FailureContext.TestFailuresByCommit): Save test failures sorted by commit.
(FailureContext.TestFailuresByStartTime): Save test failures sorted by start time.
(FailureContext.UnexpectedTestFailuresByCommit): Save unexpected test failures
sorted by commit.
(FailureContext.UnexpectedTestFailuresByStartTime): Save unexpected test failures
sorted by commit.
(FailureContext.init):
(FailureContext.register): Register test failures to each of the 4 tables for an upload.
(FailureContext._failures): Return a list of test failures from a table.
(FailureContext.failures_by_commit): Return a list of test failures from a table sorted
by commit.
(FailureContext.failures_by_start_time): Return a list of test failures from a table
sorted by commit.

  • resultsdbpy/resultsdbpy/model/failure_context_unittest.py: Added.

(FailureContextTest):
(FailureContextTest.init_database):
(FailureContextTest.test_failures_collapsed):
(FailureContextTest.test_unexpected_failures_collapsed):
(FailureContextTest.test_failures):
(FailureContextTest.test_unexpected_failures):

  • resultsdbpy/resultsdbpy/model/model.py:

(Model.init):

  • resultsdbpy/resultsdbpy/view/templates/documentation.html: Add documentation

for the /failure endpoint.

3:40 PM Changeset in webkit [252271] by Kocsen Chung
  • 7 edits in tags/Safari-609.1.10/Source

Revert Versioning.

3:34 PM Changeset in webkit [252270] by Alan Coon
  • 1 delete in tags/Safari-609.1.10.0

Delete tag.

3:28 PM Changeset in webkit [252269] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.0.1/Source

Versioning.

3:26 PM Changeset in webkit [252268] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.0.1

New tag.

3:18 PM Changeset in webkit [252267] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.0/Source

Versioning.

3:15 PM Changeset in webkit [252266] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.0

New tag.

3:03 PM Changeset in webkit [252265] by Kocsen Chung
  • 7 edits in tags/Safari-609.1.10/Source

Versioning.

3:01 PM Changeset in webkit [252264] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

Use separate cache directory for development WebKit on Mac
https://bugs.webkit.org/show_bug.cgi?id=204015

Reviewed by Youenn Fablet.

Replace the NetworkCache::lastStableVersion scheme with a completely separate directory.
This way potential bugs in development WebKit can't end up affecting system WebKit cache.
This also removes the need to keep lastStableVersion updated.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::makeCachePath):

Add '/Development' to cache path if this is not system WebKit.

(WebKit::NetworkCache::Storage::open):
(WebKit::NetworkCache::Storage::deleteOldVersions):

No need to avoid deleting lastStableVersion anymore.

  • NetworkProcess/cache/NetworkCacheStorage.h:
2:10 PM Changeset in webkit [252263] by Chris Dumez
  • 24 edits in trunk

Make DeferredPromise behave nicely with regards to the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203976

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Add template parameter to JSC::Strong to indicate that the destructor should grab the JS lock.
Normally, the callers are in charge of grabbing the lock but this is not always feasible.
In particular, in this patch, I capture a JSC::Strong in a lambda. If the document gets destroyed
before the lambda has run, the lambda will get destroyed and it will destroy the captured JSC::Strong
as a result.

  • heap/Handle.h:
  • heap/Strong.h:

(JSC::Strong::clear):

  • heap/StrongInlines.h:

(JSC::shouldStrongDestructorGrabLock>::Strong):
(JSC::shouldStrongDestructorGrabLock>::set):

Source/WebCore:

Previously, DeferredPromise would ignore requests to fulfill the promise if
reject/resolve/settle got called while the promise's script execution context
is suspended in the back/forward cache. This is really never the right thing to
do though because this means the promise will never be fulfilled if the user
ever goes back to this page.

To address the issue, DeferredPromise now schedules a task on the event loop if
it gets fulfilled while its script execution context is suspended. As a result,
the promise will properly get fulfilled if the document ever comes out of the
back/forward cache and developers using DeferredPromise do not have to worry
about suspension.

Now that DeferredPromise properly deals with suspended documents, this patch also
reverts changes I made recently in code using DeferredPromise. I had made them
queue a task on the event loop before fulfilling the promise, which did not match
their specification and is no longer needed.

Note that capturing the Strong<> in the lambda is correct here because we want
the resolution value to survive until either:

  1. The task is processed by the event loop and the promise is resolved.
  2. The back/forward cache entry containing this document is destroyed

Note that we do not leak here because when the back/forward cache's CachedFrame
gets destroyed, it will call Document::prepareForDestruction(), which will call
WindowEventLoop::stop() and destroys all pending tasks associated with this
document. This will therefore destroy the Strong captured in the task.

No new tests, covered by existing back/forward cache tests.

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::doSequentialMatch):
(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::remove):
(WebCore::DOMCacheStorage::doRemove):
(WebCore::DOMCacheStorage::keys):

  • Modules/cache/DOMCacheStorage.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::blobLoadingFailed):
(WebCore::FetchBodyOwner::blobChunk):

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::deny):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h:
  • bindings/js/JSDOMGuardedObject.h:
  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::callFunction):
(WebCore::DeferredPromise::whenSettled):
(WebCore::DeferredPromise::reject):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::resolve):
(WebCore::DeferredPromise::resolveWithNewlyCreated):
(WebCore::DeferredPromise::resolveCallbackValueWithNewlyCreated):
(WebCore::DeferredPromise::reject):
(WebCore::DeferredPromise::resolveWithCallback):
(WebCore::DeferredPromise::rejectWithCallback):
(WebCore::DeferredPromise::shouldIgnoreRequestToFulfill const):

  • css/FontFaceSet.cpp:

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

  • dom/ActiveDOMCallback.cpp:

(WebCore::ActiveDOMCallback::activeDOMObjectsAreSuspended const):
(WebCore::ActiveDOMCallback::activeDOMObjectAreStopped const):

  • dom/ActiveDOMCallback.h:
  • dom/Element.h:
  • dom/ScriptExecutionContext.h:
  • page/DOMWindow.h:
  • page/RemoteDOMWindow.h:

LayoutTests:

Rebaseline test where ordering has changed slightly due to not queueing a task anymore before
resolving the promise. This restores pre-r251746 behavior.

  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
1:43 PM Changeset in webkit [252262] by Truitt Savell
  • 4 edits in trunk/LayoutTests

Update expectations for 3 fast/events/ios/key-events-comprehensive tests
https://bugs.webkit.org/show_bug.cgi?id=204020

Unreviewed test gardening

  • fast/events/ios/key-events-comprehensive/key-events-meta-control-expected.txt:
  • fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt:
  • fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt:
1:35 PM Changeset in webkit [252261] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] [iOS] Add logging and telemetry to mach lookup rules
https://bugs.webkit.org/show_bug.cgi?id=203999

Reviewed by Brent Fulgham.

Add logging and telemetry to help determine if mach lookups to a set of services can be denied in the WebContent process.

No new tests, since this only adds logging and telemetry.

  • WebProcess/com.apple.WebProcess.sb.in:
1:34 PM Changeset in webkit [252260] by achristensen@apple.com
  • 22 edits in trunk/Source/WebKit

Make DownloadID an ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=203962

Reviewed by Youenn Fablet.

Also deprecate the unused WKDownloadGetID because this identifier is internal.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::messageSenderDestinationID const):

  • NetworkProcess/Downloads/DownloadID.h:

(WebKit::DownloadID::DownloadID): Deleted.
(WebKit::DownloadID::operator== const): Deleted.
(WebKit::DownloadID::operator!= const): Deleted.
(WebKit::DownloadID::downloadID const): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted.
(WTF::DownloadIDHash::hash): Deleted.
(WTF::DownloadIDHash::equal): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted.

  • NetworkProcess/Downloads/DownloadMonitor.cpp:

(WebKit::DownloadMonitor::applicationWillEnterForeground):
(WebKit::DownloadMonitor::applicationDidEnterBackground):
(WebKit::DownloadMonitor::timerFired):

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::messageSenderDestinationID const):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::setPendingDownloadID):
(WebKit::NetworkDataTask::isDownload const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::convertToDownload):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):

  • Scripts/webkit/messages.py:
  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/C/WKDownload.cpp:

(WKDownloadGetID):

  • UIProcess/API/C/WKDownload.h:
  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::DownloadProxy):
(WebKit::generateDownloadID): Deleted.

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit::DownloadProxyMap::downloadFinished):
(WebKit::DownloadProxyMap::invalidate):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.h:
1:26 PM Changeset in webkit [252259] by achristensen@apple.com
  • 13 edits in trunk

Fix flaky tests in http/tests/cache/disk-cache
https://bugs.webkit.org/show_bug.cgi?id=203822

Reviewed by Youenn Fablet.

Source/WebKit:

Right now tests that set the cache model do so using a race condition. I think this will fix the flakyness we've observed.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetCacheModelSynchronouslyForTesting):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setCacheModelSynchronouslyForTesting):

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

(WebKit::WebsiteDataStore::setCacheModelSynchronouslyForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::setCacheModel):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

1:16 PM Changeset in webkit [252258] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Revert some changes accidentally committed with r252257
https://bugs.webkit.org/show_bug.cgi?id=202178

  • UIProcess/API/C/WKContextPrivate.h:
1:14 PM Changeset in webkit [252257] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Move schemes for SchemeRegistry from WebProcessPool to LegacyGlobalSettings
https://bugs.webkit.org/show_bug.cgi?id=202178

Reviewed by Youenn Fablet.

The current users of the SPI to set these only have one WebProcessPool, so they intend these settings to be global.
Moving them to LegacyGlobalSettings allows me to make a NetworkProcessProxy without a WebProcessPool and not regress existing functionality.
I move only the four sets of schemes needed to launch a NetworkProcess to remove the dependency the NetworkProcess has on the WebProcessPool.

  • UIProcess/LegacyGlobalSettings.h:

(WebKit::LegacyGlobalSettings::schemesToRegisterAsSecure):
(WebKit::LegacyGlobalSettings::registerURLSchemeAsSecure):
(WebKit::LegacyGlobalSettings::schemesToRegisterAsBypassingContentSecurityPolicy):
(WebKit::LegacyGlobalSettings::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebKit::LegacyGlobalSettings::schemesToRegisterAsLocal):
(WebKit::LegacyGlobalSettings::registerURLSchemeAsLocal):
(WebKit::LegacyGlobalSettings::schemesToRegisterAsNoAccess):
(WebKit::LegacyGlobalSettings::registerURLSchemeAsNoAccess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::registerURLSchemeAsSecure):
(WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebKit::WebProcessPool::registerURLSchemeAsLocal):
(WebKit::WebProcessPool::registerURLSchemeAsNoAccess):

  • UIProcess/WebProcessPool.h:
1:11 PM Changeset in webkit [252256] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Use LinkTimeConstants and make some properties lazy
https://bugs.webkit.org/show_bug.cgi?id=203795

Reviewed by Keith Miller.

This patch makes Map and Set lazily initialized in JSGlobalObject by leveraging link-time-constant. @Set was accessed from
builtin-JS. So we cannot make it lazily-allocated. But now we have link-time-constant mechanism that makes such accesses
lazily-initialized. We use this to make Set lazily-allocated.

And, instead of JSGlobalObject's last sequence of initialization, we initialize watchpoint in MapPrototype::finishCreation
and SetPrototype::finishCreation. This allows us to make Map and Set lazily-allocated. We also refactor NumberPrototype to
align to this model.

  • runtime/ArrayPrototype.cpp:

(JSC::speciesWatchpointIsValid):

  • runtime/JSGlobalObject.cpp:

(JSC::setupAdaptiveWatchpoint):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):
(JSC::JSGlobalObject::installNumberPrototypeWatchpoint):
(JSC::JSGlobalObject::installMapPrototypeWatchpoint):
(JSC::JSGlobalObject::installSetPrototypeWatchpoint):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::numberProtoToStringFunction const):
(JSC::JSGlobalObject::mapPrototype const):
(JSC::JSGlobalObject::jsSetPrototype const):
(JSC::JSGlobalObject::numberObjectStructure const):
(JSC::JSGlobalObject::mapStructure const): Deleted.

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation):

  • runtime/NumberPrototype.h:
  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

1:10 PM Changeset in webkit [252255] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

StyleResolver state should store user agent appearance style as RenderStyle
https://bugs.webkit.org/show_bug.cgi?id=204008

Reviewed by Zalan Bujtas.

Generate and pass around user agent style as RenderStyle for apperance computation instead
of awkwardly passing around separate property values.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::State::cacheBorderAndBackground): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::element const):
(WebCore::StyleResolver::State::userAgentAppearanceStyle const):
(WebCore::StyleResolver::State::setUserAgentAppearanceStyle):
(WebCore::StyleResolver::element): Deleted.
(WebCore::StyleResolver::State::hasUAAppearance const): Deleted.
(WebCore::StyleResolver::State::borderData const): Deleted.
(WebCore::StyleResolver::State::backgroundData const): Deleted.
(WebCore::StyleResolver::State::backgroundColor const): Deleted.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::isControlStyled const):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::isControlStyled const):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::isControlStyled const):

  • style/StyleBuilder.cpp:

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

Allow providing style separately from StyleResolver state.

  • style/StyleBuilder.h:
12:50 PM Changeset in webkit [252254] by dbates@webkit.org
  • 8 edits in trunk/Source

Add WebKit Legacy SPI to retrieve editable elements in rect
https://bugs.webkit.org/show_bug.cgi?id=204006
<rdar://problem/57024093>

Reviewed by Wenson Hsieh.

Source/WebCore:

Extract code to retrieve the editable elements inside a specified rect from WebKit
to WebCore so that it can be shared by both Modern WebKit and Legacy WebKit.

  • page/Page.cpp:

(WebCore::isEditableTextInputElement):
(WebCore::Page::editableElementsInRect const):

  • page/Page.h:

Source/WebKit:

Write WebPage::textInputContextsInRect() in terms of Page::editableElementsInRect().
Also make use of Element::clientRect() instead of elementRectInRootViewCoordinates(),
which duplicates what the former does.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect): Write in terms of Page::editableElementsInRect().
(WebKit::WebPage::contextForElement const): Use Element::clientRect() which does what
elementRectInRootViewCoordinates() does.
(WebKit::elementRectInRootViewCoordinates): Deleted.
(WebKit::isEditableTextInputElement): Deleted.

Source/WebKitLegacy/mac:

Add SPI to retrieve all the editable elements in a rect.

  • WebView/WebView.mm:

(-[WebView _editableElementsInRect:]): Added.

  • WebView/WebViewPrivate.h:
12:40 PM Changeset in webkit [252253] by graouts@webkit.org
  • 15 edits
    2 adds in trunk/Source/WebCore

[Web Animations] Use a keyframe effect stack to resolve animations on an element
https://bugs.webkit.org/show_bug.cgi?id=204010

Reviewed by Dean Jackson.

Until now, when resolving animations for an element, we would call animationsForElement() during each resolution which
means doing several hash table lookups to locate the various classes of animations for that given element, sorting each
of those animations and inserting them into a new Vector.

We now use a KeyframeEffectStack which keeps a list of KeyframeEffect objects that apply to a given target, provided the
effect also has a valid animation and that animation has a valid timeline, all pre-conditions for that effect to produce
an animated value. Any time one of those pre-conditions change, we update the membership of that effect in the stack.
The KeyframeEffectStack is a new member of ElementRareData.

Now, each time we resolve an animation for an element, we iterate over the KeyframeEffect objects returned by calling
sortEffects() on the KeyframeEffectStack which will sort the stack's effects only if a new effect had been added since
the last iteration, which means that simple animations that are not mutated will require sorting of the stack just once,
and the addition of several animations in a single animation frame will require sorting just once as well.

It was also found while doing this work that Style::TreeResolver::createAnimatedElementUpdate would call RenderStyle::clonePtr()
for any element that was part of a document containing a timeline, regardless of whether that element had any animations. Now
we check whether that element's KeyframeEffectStack contains any effects prior to cloning the style.

No tests or changes to existed test expectations as this should not yield any change in behavior.

  • Sources.txt: Add the new KeyframeEffectStack.
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEffect.h:

(WebCore::AnimationEffect::setAnimation):

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeAnimation):
(WebCore::AnimationTimeline::updateCSSAnimationsForElement): Since we need to know the order of CSS @keyframes rules listed in animation-name
when sorting effects, we must compile the ordered list of those @keyframe rules as we update CSS animations for an element and store it on its
KeyframeEffectStack.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::resolveAnimationsForElement): Deleted. Replaced by Element::applyKeyframeEffects().

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

(WebCore::KeyframeEffect::animationTimelineDidChange):
(WebCore::KeyframeEffect::setAnimation):
(WebCore::KeyframeEffect::setTarget):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp: Added.

(WebCore::KeyframeEffectStack::KeyframeEffectStack):
(WebCore::KeyframeEffectStack::~KeyframeEffectStack):
(WebCore::KeyframeEffectStack::addEffect):
(WebCore::KeyframeEffectStack::removeEffect):
(WebCore::KeyframeEffectStack::sortedEffects):
(WebCore::KeyframeEffectStack::ensureEffectsAreSorted):
(WebCore::KeyframeEffectStack::setCSSAnimationNames):

  • animation/KeyframeEffectStack.h: Added.

(WebCore::KeyframeEffectStack::hasEffects const):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimelineInternal):
(WebCore::WebAnimation::persist):

  • dom/Element.cpp:

(WebCore::Element::ensureKeyframeEffectStack):
(WebCore::Element::hasKeyframeEffects const):
(WebCore::Element::applyKeyframeEffects):

  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::keyframeEffectStack):
(WebCore::ElementRareData::setKeyframeEffectStack):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

12:00 PM Changeset in webkit [252252] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.4/Source

Versioning.

11:59 AM Changeset in webkit [252251] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.4

New tag.

11:55 AM Changeset in webkit [252250] by dino@apple.com
  • 19 edits in trunk/Source/ThirdParty/ANGLE/src

Add ANGLE backend for iOS device
https://bugs.webkit.org/show_bug.cgi?id=202159
<rdar://57000166>

Build fixes for Mac Catalyst, tvOS and watchOS.

  • src/common/PackedEnums.cpp:

(egl_gl::EGLTextureTargetToTextureType):

  • src/common/platform.h:
  • src/gpu_info_util/SystemInfo_ios.cpp:
  • src/gpu_info_util/SystemInfo_macos.cpp:
  • src/libANGLE/Display.cpp:
  • src/libANGLE/formatutils.cpp:

(gl::BuildInternalFormatInfoMap):

  • src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:
  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/RendererCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::GenerateCaps):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateFramebufferTexture2D):

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

Clicking on EWS status-bubble should open the results in new tab
https://bugs.webkit.org/show_bug.cgi?id=204012

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
11:44 AM Changeset in webkit [252248] by jiewen_tan@apple.com
  • 5 edits in trunk

[WebAuthn] Return NotAllowedError immediately for UI cancellations
https://bugs.webkit.org/show_bug.cgi?id=203937
<rdar://problem/56962420>

Reviewed by Brent Fulgham.

Source/WebKit:

NotAllowedError representing UI cancellations should be returned to sites
immediately such that sites could show appropriate error page immediately.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::cancelRequest):
(WebKit::AuthenticatorManager::clearState):
(WebKit::AuthenticatorManager::resetState): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

11:37 AM Changeset in webkit [252247] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove invalid assertion in DFG's compileNewArray().
https://bugs.webkit.org/show_bug.cgi?id=204002
<rdar://problem/56973531>

Reviewed by Robin Morisset.

The assertion is in an if clause conditional on !globalObject->isHavingABadTime().
The assertion tests the IndexingType of a structure returned by
arrayStructureForIndexingTypeDuringAllocation().

However, the structures returned by arrayStructureForIndexingTypeDuringAllocation()
may have started transitioning to their SlowPut variant because the mutator will
be imminently firing the HavingABadTime watchpoint, but haven't done so yet.
In a race, the DFG may see the SlowPut variants of the structures before
isHavingABadTime() returns true. Hence, the assertion is invalid.

Note that the FTL does not have this assertion.

This issue is already tested by stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewArray):

11:11 AM Changeset in webkit [252246] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Add ANGLE backend for iOS device
https://bugs.webkit.org/show_bug.cgi?id=202159
<rdar://57000166>

Build fix. Don't include IOSurface.h on iOS (public SDK doesn't have it).

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
10:58 AM Changeset in webkit [252245] by dino@apple.com
  • 24 edits
    1 move
    16 adds in trunk/Source

Add ANGLE backend for iOS device
https://bugs.webkit.org/show_bug.cgi?id=202159
<rdar://57000166>

Reviewed by Myles Maxfield.

Source/ThirdParty/ANGLE:

Add an OpenGLES backend over EAGL for iOS to ANGLE.

This is basically a copy of all the files in
libANGLE/renderer/gl/cgl into libANGLE/renderer/gl/eagl, then with
modifications to make it work on iOS's OpenGL ES. Most notably,
some format enums and the manner in which you bind an IOSurface to
a GL texture are different.

This introduces a few places where we have to do a compile time
switch for iOS, some of which might actually be applicable to
other OpenGL ES backends.

The biggest missing piece is support for the iOS simulator. At the moment
this backend relies on an IOSurface binding as a rendering target.
But the iOS Simulator does not have the required ability to have a
GL ES texture backed by an IOSurface.

The WindowSurfaceEAGL code is incomplete, but was not necessary
in order to get WebGL operational. And even if you are using ANGLE
directly, you can have the client code render into a CALayer without
going through the WindowSurface.

  • ANGLE.xcodeproj/project.pbxproj:
  • include/EGL/eglext_angle.h:
  • src/common/PackedEnums.cpp:

(egl_gl::EGLTextureTargetToTextureType):

  • src/common/platform.h:
  • src/gpu_info_util/SystemInfo_ios.cpp: Added.

(angle::GetSystemInfo):

  • src/gpu_info_util/SystemInfo_macos.cpp: Renamed from Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_mac.cpp.

(angle::GetSystemInfo):

  • src/libANGLE/Caps.h:
  • src/libANGLE/Display.cpp:
  • src/libANGLE/formatutils.cpp:

(gl::BuildInternalFormatInfoMap):

  • src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:
  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:

(rx::IOSurfaceSurfaceCGL::bindTexImage):

  • src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/RendererCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm:
  • src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp: Added.

(rx::ContextEAGL::ContextEAGL):

  • src/libANGLE/renderer/gl/eagl/ContextEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Added.

(rx::DeviceEAGL::DeviceEAGL):
(rx::DeviceEAGL::~DeviceEAGL):
(rx::DeviceEAGL::initialize):
(rx::DeviceEAGL::getAttribute):
(rx::DeviceEAGL::getType):
(rx::DeviceEAGL::generateExtensions const):

  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Added.

(rx::FunctionsGLEAGL::FunctionsGLEAGL):
(rx::DisplayEAGL::DisplayEAGL):
(rx::DisplayEAGL::~DisplayEAGL):
(rx::DisplayEAGL::initialize):
(rx::DisplayEAGL::terminate):
(rx::DisplayEAGL::createWindowSurface):
(rx::DisplayEAGL::createPbufferSurface):
(rx::DisplayEAGL::createPbufferFromClientBuffer):
(rx::DisplayEAGL::createPixmapSurface):
(rx::DisplayEAGL::createContext):
(rx::DisplayEAGL::createDevice):
(rx::DisplayEAGL::generateConfigs):
(rx::DisplayEAGL::testDeviceLost):
(rx::DisplayEAGL::restoreLostDevice):
(rx::DisplayEAGL::isValidNativeWindow const):
(rx::DisplayEAGL::validateClientBuffer const):
(rx::DisplayEAGL::getVendorString const):
(rx::DisplayEAGL::getEAGLContext const):
(rx::DisplayEAGL::getEAGLPixelFormat const):
(rx::DisplayEAGL::generateExtensions const):
(rx::DisplayEAGL::generateCaps const):
(rx::DisplayEAGL::waitClient):
(rx::DisplayEAGL::waitNative):
(rx::DisplayEAGL::getMaxSupportedESVersion const):
(rx::DisplayEAGL::makeCurrentSurfaceless):
(rx::WorkerContextEAGL::WorkerContextEAGL):
(rx::WorkerContextEAGL::~WorkerContextEAGL):
(rx::WorkerContextEAGL::makeCurrent):
(rx::WorkerContextEAGL::unmakeCurrent):
(rx::DisplayEAGL::createWorkerContext):
(rx::DisplayEAGL::initializeFrontendFeatures const):
(rx::DisplayEAGL::populateFeatureList):

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp.

(rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL):
(rx::IOSurfaceSurfaceEAGL::~IOSurfaceSurfaceEAGL):
(rx::IOSurfaceSurfaceEAGL::initialize):
(rx::IOSurfaceSurfaceEAGL::makeCurrent):
(rx::IOSurfaceSurfaceEAGL::unMakeCurrent):
(rx::IOSurfaceSurfaceEAGL::swap):
(rx::IOSurfaceSurfaceEAGL::postSubBuffer):
(rx::IOSurfaceSurfaceEAGL::querySurfacePointerANGLE):
(rx::IOSurfaceSurfaceEAGL::bindTexImage):
(rx::IOSurfaceSurfaceEAGL::releaseTexImage):
(rx::IOSurfaceSurfaceEAGL::setSwapInterval):
(rx::IOSurfaceSurfaceEAGL::getWidth const):
(rx::IOSurfaceSurfaceEAGL::getHeight const):
(rx::IOSurfaceSurfaceEAGL::isPostSubBufferSupported const):
(rx::IOSurfaceSurfaceEAGL::getSwapBehavior const):
(rx::IOSurfaceSurfaceEAGL::validateAttributes):
(rx::IOSurfaceFramebuffer::IOSurfaceFramebuffer):
(rx::IOSurfaceSurfaceEAGL::createDefaultFramebuffer):
(rx::IOSurfaceSurfaceEAGL::initializeAlphaChannel):
(rx::IOSurfaceSurfaceEAGL::hasEmulatedAlphaChannel const):

  • src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp.

(rx::PbufferSurfaceEAGL::PbufferSurfaceEAGL):
(rx::PbufferSurfaceEAGL::~PbufferSurfaceEAGL):
(rx::PbufferSurfaceEAGL::initialize):
(rx::PbufferSurfaceEAGL::makeCurrent):
(rx::PbufferSurfaceEAGL::swap):
(rx::PbufferSurfaceEAGL::postSubBuffer):
(rx::PbufferSurfaceEAGL::querySurfacePointerANGLE):
(rx::PbufferSurfaceEAGL::bindTexImage):
(rx::PbufferSurfaceEAGL::releaseTexImage):
(rx::PbufferSurfaceEAGL::setSwapInterval):
(rx::PbufferSurfaceEAGL::getWidth const):
(rx::PbufferSurfaceEAGL::getHeight const):
(rx::PbufferSurfaceEAGL::isPostSubBufferSupported const):
(rx::PbufferSurfaceEAGL::getSwapBehavior const):
(rx::PbufferSurfaceEAGL::createDefaultFramebuffer):

  • src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp: Added.

(rx::RendererEAGL::RendererEAGL):
(rx::RendererEAGL::~RendererEAGL):
(rx::RendererEAGL::createWorkerContext):

  • src/libANGLE/renderer/gl/eagl/RendererEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Added.
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm.

(-[WebSwapLayer initWithSharedState:withContext:withFunctions:]):
(-[WebSwapLayer display]):
(rx::WindowSurfaceEAGL::WindowSurfaceEAGL):
(rx::WindowSurfaceEAGL::~WindowSurfaceEAGL):
(rx::WindowSurfaceEAGL::initialize):
(rx::WindowSurfaceEAGL::makeCurrent):
(rx::WindowSurfaceEAGL::swap):
(rx::WindowSurfaceEAGL::postSubBuffer):
(rx::WindowSurfaceEAGL::querySurfacePointerANGLE):
(rx::WindowSurfaceEAGL::bindTexImage):
(rx::WindowSurfaceEAGL::releaseTexImage):
(rx::WindowSurfaceEAGL::setSwapInterval):
(rx::WindowSurfaceEAGL::getWidth const):
(rx::WindowSurfaceEAGL::getHeight const):
(rx::WindowSurfaceEAGL::isPostSubBufferSupported const):
(rx::WindowSurfaceEAGL::getSwapBehavior const):
(rx::WindowSurfaceEAGL::createDefaultFramebuffer):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::GenerateCaps):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateFramebufferTexture2D):

  • src/libGLESv2/entry_points_egl_ext.cpp:

Source/WebCore:

Use the ANGLE for iOS backend.

Mostly this was just moving some code around so that it would compile
on iOS when USE(ANGLE) is true. The actual code to render WebGL is
similar between macOS and iOS - both now using a CALayer with
a set of IOSurfaces that are used as swap textures.

The main difference is that macOS (OpenGL) binds to TEXTURE_RECTANGLE,
and iOS (OpenGL ES) binds to the regular TEXTURE_2D.

The remaining missing piece is getting video textures into ANGLE
efficiently (without leaving the GPU). We can ask CoreVideo
to give us raw GL textures, but with ANGLE we no longer have direct access
to the underlying OpenGL context.

This is not enabled in the builds yet, so no tests. However, when
enabled it will be tested against the official WebGL conformance suite.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateVertexAttributes):

  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::allocateIOSurfaceBackingStore):
(WebCore::GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer display]):
(-[WebGLLayer setEGLDisplay:config:]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):
(-[WebGLLayer bindFramebufferToNextAvailableSurface]):
(-[WebGLLayer setEGLDisplay:andConfig:]): Deleted.

  • platform/graphics/cv/TextureCacheCV.mm:

(WebCore::TextureCacheCV::textureFromImage):

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture):

  • platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
  • platform/graphics/opengl/TemporaryOpenGLSetting.h:
10:53 AM Changeset in webkit [252244] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Prioritize builders over testers when a bot is shared over multiple queues
https://bugs.webkit.org/show_bug.cgi?id=204007

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/loadConfig.py:

(loadBuilderConfig):
(prioritizeBuilders): Method to prioritize builder queues over tester queues.

10:37 AM Changeset in webkit [252243] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

[PlayStation][JSC] Unreviewed build fix.

  • shell/playstation/TestShell.cpp:
10:24 AM Changeset in webkit [252242] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression r252209: Layout Test fast/workers/worker-close-more.html is failing
https://bugs.webkit.org/show_bug.cgi?id=203995
<rdar://problem/57020558>

Reviewed by Ryosuke Niwa.

We should not dispatch events on a MessagePort objects in a WorkerGlobalScope which is
closing (i.e. WorkerGlobalScope.close() has been called).

No new tests, covered by fast/workers/worker-close-more.html.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchEvent):

10:08 AM Changeset in webkit [252241] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

Temporarily skip another broken test on MIPS due to OSR exit to LLInt
https://bugs.webkit.org/show_bug.cgi?id=204003

Unreviewed gardening.

  • stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js:
10:06 AM Changeset in webkit [252240] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Picture-in-Picture events are not fired when enter/exit the Picture-in-Picture mode through modern media controls
https://bugs.webkit.org/show_bug.cgi?id=203933

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-08
Reviewed by Eric Carlson.

Covered by existing layout test cases. No new test is required.

  • Modules/modern-media-controls/media/pip-support.js:

(PiPSupport.prototype.buttonWasPressed):

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):

8:58 AM Changeset in webkit [252239] by mark.lam@apple.com
  • 11 edits
    2 adds in trunk

Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
https://bugs.webkit.org/show_bug.cgi?id=203936
<rdar://problem/56624724>

Reviewed by Saam Barati.

JSTests:

This issue originally manifested as incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js
failing on iOS devices due to its smaller stack. We adapted the original test
here using $vm.callWithStackSize() to reproduce the issue on x86_64 though it
has a much larger physical stack to work with. This new test will crash while
stepping on the guard page beyond the end of the stack if the fix is not applied.

  • stress/stack-overflow-in-yarr-byteCompile.js: Added.

Source/JavaScriptCore:

Basically, any functions below Yarr::ByteCompiler::compile() that recurses need
to check if it's safe to recurse before doing so. This patch adds the stack
checks in Yarr::ByteCompiler::compile() because it is the entry point to this
sub-system, and Yarr::ByteCompiler::emitDisjunction() because it is the only
function that recurses. All other functions called below compile() are either
leaf functions or have shallow stack usage. Hence, their stack needs are covered
by the DefaultReservedZone, and they do not need stack checks.

This patch also does the following:

  1. Added $vm.callWithStackSize() which can be used to call a test function near the end of the physical stack. This enables is to simulate the smaller stack size of more resource constrained devices.

$vm.callWithStackSize() uses inline asm to adjust the stack pointer and
does the callback via the JIT probe trampoline.

  1. Added the --disableOptionsFreezingForTesting to the jsc shell to make it possible to disable freezing of JSC options. $vm.callWithStackSize() relies on this to modify the VM's stack limits.
  1. Removed the inline modifier on VM::updateStackLimits() so that we can call it from $vm.callWithStackSize() as well. It is not a performance critical function and is rarely called.
  1. Added a JSDollarVMHelper class that other parts of the system can declare as a friend. This gives $vm a backdoor into the private functions and fields of classes for its debugging work. In this patch, we're only using it to access VM::updateVMStackLimits().
  • jsc.cpp:

(CommandLine::parseArguments):

  • runtime/VM.cpp:

(JSC::VM::updateStackLimits):

  • runtime/VM.h:
  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMHelper::JSDollarVMHelper):
(JSC::JSDollarVMHelper::vmStackStart):
(JSC::JSDollarVMHelper::vmStackLimit):
(JSC::JSDollarVMHelper::vmSoftStackLimit):
(JSC::JSDollarVMHelper::updateVMStackLimits):
(JSC::callWithStackSizeProbeFunction):
(JSC::functionCallWithStackSize):
(JSC::JSDollarVM::finishCreation):
(IGNORE_WARNINGS_BEGIN): Deleted.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::emitDisjunction):
(JSC::Yarr::ByteCompiler::isSafeToRecurse):

Source/WTF:

  1. Add a StackCheck utility class so that we don't have to keep reinventing this every time we need to add stack checking somewhere.
  2. Rename some arguments and constants in StackBounds to be more descriptive of what they actually are.
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StackBounds.h:

(WTF::StackBounds::recursionLimit const):

  • wtf/StackCheck.h: Added.

(WTF::StackCheck::StackCheck):
(WTF::StackCheck::isSafeToRecurse):

7:09 AM Changeset in webkit [252238] by Carlos Garcia Campos
  • 7 edits in trunk

WebDriver: implement get page source command
https://bugs.webkit.org/show_bug.cgi?id=180399

Reviewed by Carlos Alberto Lopez Perez.

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::getPageSource):

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::WebDriverService::getPageSource):

  • WebDriverService.h:

WebDriverTests:

Unskip tests that are now passing.

7:04 AM Changeset in webkit [252237] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.3

New tag.

7:02 AM Changeset in webkit [252236] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.2/Source

Versioning.

2:53 AM Changeset in webkit [252235] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build fix for platforms without WebRTC's SSL after r252185
https://bugs.webkit.org/show_bug.cgi?id=203934

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

The new test uses TLS with the HTTPS proxy. Don't compile it if we can't compile it.

2:23 AM WPE/Releasing created by alex
2:08 AM WPE edited by alex
(diff)
1:19 AM Changeset in webkit [252234] by Carlos Garcia Campos
  • 14 edits
    3 adds in trunk

[GTK] Add pointer lock permission request API
https://bugs.webkit.org/show_bug.cgi?id=203896

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Add a WebKitPointerLockPermissionRequest class to handle pointer lock permissions.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • UIProcess/API/glib/WebKitPointerLockPermissionRequest.cpp: Added.

(webkitPointerLockPermissionRequestAllow):
(webkitPointerLockPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitPointerLockPermissionRequestDispose):
(webkit_pointer_lock_permission_request_class_init):
(webkitPointerLockPermissionRequestCreate):
(webkitPointerLockPermissionRequestDidLosePointerLock):

  • UIProcess/API/glib/WebKitPointerLockPermissionRequestPrivate.h: Added.
  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::~UIClient):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewPermissionRequest):
(webkitWebViewDenyPointerLockRequest):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/WebKitPointerLockPermissionRequest.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:

Tools:

Handle pointer lock permission requests in MiniBrowser and add a new tests case to check the new API.

  • MiniBrowser/gtk/BrowserTab.c:

(pointerLockMessageTimeoutCallback):
(decidePermissionRequest):
(browserTabFinalize):
(browserTabConstructed):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewPointerLockPermissionRequest):
(beforeAll):

1:09 AM Changeset in webkit [252233] by Carlos Garcia Campos
  • 6 edits
    2 adds in trunk

'Strikethrough' editing command reported as 'formatUnderline'
https://bugs.webkit.org/show_bug.cgi?id=203944

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add an EditAction for strikeThrough command.

Test: fast/events/input-events-strikethrough-type.html

  • editing/EditAction.cpp:

(WebCore::undoRedoLabel): Handle StrikeThrough action.

  • editing/EditAction.h:
  • editing/EditCommand.cpp:

(WebCore::inputTypeNameForEditingAction): Ditto.

  • editing/EditorCommand.cpp:

(WebCore::executeStrikethrough): Use StrikeThrough action instead of Underline.

LayoutTests:

  • fast/events/input-events-strikethrough-type-expected.txt: Added.
  • fast/events/input-events-strikethrough-type.html: Added.

Nov 7, 2019:

8:02 PM Changeset in webkit [252232] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 13.2.2

Added a tag for iOS 13.2.2.

7:55 PM Changeset in webkit [252231] by Tadeu Zagallo
  • 5 edits in trunk/Source/JavaScriptCore

Use fewer virtual registers in Wasm LLInt
https://bugs.webkit.org/show_bug.cgi?id=203861

Reviewed by Saam Barati.

Reduce the number of virtual registers in two ways:

  • Re-use arguments for result values (e.g. the result of add lhs, rhs should go in lhs, not a new virtual register)
  • Re-use the argument register space for return values that should be placed in registers
  • bytecode/BytecodeList.rb:
  • generator/Wasm.rb:
  • llint/WebAssembly.asm:
  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::callInformationFor):
(JSC::Wasm::LLIntGenerator::addReturn):
(JSC::Wasm::LLIntGenerator::addRefIsNull):
(JSC::Wasm::LLIntGenerator::addTableGet):
(JSC::Wasm::LLIntGenerator::addTableGrow):
(JSC::Wasm::LLIntGenerator::addGrowMemory):
(JSC::Wasm::LLIntGenerator::addSelect):
(JSC::Wasm::LLIntGenerator::load):

6:52 PM Changeset in webkit [252230] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Default NamepaceURI must be gotten from the topmost parent before the SVG <foreignObject>
https://bugs.webkit.org/show_bug.cgi?id=203868

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Ensure that we don't cross boundaries from HTML to SVG when traversing
the tree of nodes upward. We need to stop at the foreignObject if it is
one of the ancestors of the contextElement.

Tests: svg/foreignObject/foreign-object-dynamic-parsing.svg

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::HTMLTableCellElement):
This assertion should not fire if the tag has a prefix like <h:th> or
<h:td> where 'h' is a defined namespace.

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::parseDocumentFragment):
Stop at the first SVG <foreignObject> ancestor when calculating the
defaultNamespaceURI.

  • xml/parser/XMLDocumentParser.h:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):

(WebCore::XMLDocumentParser::startElementNs):
We need to special case setting the namespaceURI of the SVGElmenets. The
defaultNamespaceURI can be wrong for them if the context element is an
HTML element, <div> for example, and the innerHTML is set to something
like: '<svg><rect/></svg>'.

LayoutTests:

  • svg/foreignObject/foreign-object-dynamic-parsing-expected.svg: Added.
  • svg/foreignObject/foreign-object-dynamic-parsing.svg: Added.
6:46 PM Changeset in webkit [252229] by rmorisset@apple.com
  • 46 edits in trunk/Source/JavaScriptCore

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

Reviewed by Keith Miller.

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

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

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

  • bytecode/ArithProfile.cpp:

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

  • bytecode/ArithProfile.h:

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

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

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::binaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::unaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addMathIC):

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

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

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):

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

(JSC::UnaryOpNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

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

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

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

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

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITMathIC.h:

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

  • jit/JITMulGenerator.cpp:

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

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

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

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

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

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

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

  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

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

6:45 PM Changeset in webkit [252228] by Chris Dumez
  • 6 edits in trunk

TestController may reuse a view that used window.open(), which prevents process-swapping and causes flakiness
https://bugs.webkit.org/show_bug.cgi?id=203981

Reviewed by Ryosuke Niwa.

Tools:

Stop reusing WebViews that have created other WebViews (via window.open()) since this prevents process-swapping
and may therefore cause flakiness (see Bug 203965).

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::ensureViewSupportsOptionsForTest):

  • WebKitTestRunner/TestController.h:

LayoutTests:

Drop temporary flakiness workaround that was landed in r252214.

  • http/tests/inspector/target/target-events-for-provisional-page.html:
6:35 PM Changeset in webkit [252227] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use ActiveDOMObject::queueTaskKeepingObjectAlive() in DOMCache
https://bugs.webkit.org/show_bug.cgi?id=203985

Reviewed by Ryosuke Niwa.

Use ActiveDOMObject::queueTaskKeepingObjectAlive() in DOMCache and drop DOMCache::enqueueTask().

  • Modules/cache/DOMCache.cpp:

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

  • Modules/cache/DOMCache.h:
5:38 PM Changeset in webkit [252226] by commit-queue@webkit.org
  • 16 edits
    6 adds in trunk/Source/WebCore

Please support WEBGL_compressed_texture_etc1 extension (and possibly WEBGL_compressed_texture_etc too)
https://bugs.webkit.org/show_bug.cgi?id=197900

Patch by Kenneth Russell <kbr@chromium.org> on 2019-11-07
Reviewed by Dean Jackson.

Support the ETC1 and ETC2 compressed texture formats in WebKit's WebGL
implementation.

Tested by changing the code to allocate an OpenGL ES 3.0 context for WebGL,
and running in the iOS Simulator. The WebGL conformance tests
webgl-compressed-texture-etc.html and webgl-compressed-texture-etc1.html all
pass with these changes.

When an ANGLE backend is supported on iOS, these extensions will
automatically be supported, and some of the new validation code can be
removed.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • html/canvas/WebGLCompressedTextureETC.cpp: Added.

(WebCore::WebGLCompressedTextureETC::WebGLCompressedTextureETC):
(WebCore::WebGLCompressedTextureETC::getName const):
(WebCore::WebGLCompressedTextureETC::supported):

  • html/canvas/WebGLCompressedTextureETC.h: Added.
  • html/canvas/WebGLCompressedTextureETC.idl: Added.
  • html/canvas/WebGLCompressedTextureETC1.cpp: Added.

(WebCore::WebGLCompressedTextureETC1::WebGLCompressedTextureETC1):
(WebCore::WebGLCompressedTextureETC1::getName const):
(WebCore::WebGLCompressedTextureETC1::supported):

  • html/canvas/WebGLCompressedTextureETC1.h: Added.
  • html/canvas/WebGLCompressedTextureETC1.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/Extensions3D.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::supportsExtension):

5:35 PM Changeset in webkit [252225] by Justin Fan
  • 3 edits
    20 adds in trunk/LayoutTests

[WebGL] Fixing WebGL tests: Add new baselines for iOS bots
https://bugs.webkit.org/show_bug.cgi?id=203938

Unreviewed test expectation gardening.

Follow-up to https://bugs.webkit.org/show_bug.cgi?id=203908.
New baselines for iOS tests generated from simulator.

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/webgl/1.0.3/conformance/extensions/get-extension-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/extensions/webgl-draw-buffers-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/more/functions/readPixelsBadArgs-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/more/functions/texImage2DHTML-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/more/functions/texSubImage2DHTML-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats-expected.txt: Added.
  • platform/ios/webgl/1.0.3/conformance/textures/texture-npot-video-expected.txt: Added.
  • platform/ios/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt: Added.
  • platform/ios/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt: Added.
5:29 PM Changeset in webkit [252224] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[bmalloc] Bug fix for wait time when it's in mini mode.
https://bugs.webkit.org/show_bug.cgi?id=203121

Reviewed by Saam Barati.

Basuke pointed out that we never changed m_waitTime in scavenger when we are in iOS and mini-mode.
So previously, we are always executing scavenger for each 10ms in mini-mode. After fixing it, we
found that this unintentional behavior was better policy for RAMification.
In this patch, we explicitly use the old behavior, "scavenge for each 10ms" in iOS mini-mode.
We should revisit scavenger's behavior in the future to explore further better behavior.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::threadRunLoop):

5:18 PM Changeset in webkit [252223] by timothy_horton@apple.com
  • 2 edits
    1 delete in trunk/Source/WebKit

Remove an unused icon resource
https://bugs.webkit.org/show_bug.cgi?id=203983

Reviewed by Wenson Hsieh.

  • Resources/mac/mediaIcon.pdf: Removed.
  • WebKit.xcodeproj/project.pbxproj:

This file has not been used in years.

5:15 PM Changeset in webkit [252222] by Justin Fan
  • 1 edit
    1 add in trunk/LayoutTests

webgl/1.0.3/conformance/context/context-release-upon-reload.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203984

Unreviewed test expectation addition.

Skip context-release-upon-reload.html on High Sierra WK1 debug bots.

  • platform/mac-highsierra-wk1/TestExpectations: Added.
5:13 PM Changeset in webkit [252221] by rniwa@webkit.org
  • 8 edits
    7 adds in trunk

WindowEventLoop should be shared among similar origin documents
https://bugs.webkit.org/show_bug.cgi?id=203882

Reviewed by Wenson Hsieh.

Source/WebCore:

Made WindowEventLoop shared across similar origin documents.

Also added internals.queueTask to directly test the event loop behavior
since implicitly testing it via other features has been very cumbersome.

This will help test other features that use the HTML5 event loop as well.

Tests: http/tests/eventloop/queue-task-across-cross-site-frames.html

http/tests/eventloop/queue-task-across-frames.html

  • dom/Document.cpp:

(WebCore::Document::eventLoop): Use WindowEventLoop::ensureForRegistrableDomain.

  • dom/WindowEventLoop.cpp:

(WebCore::WindowEventLoop::ensureForRegistrableDomain): Added. Replaces create,
and returns an existing WindowEventLoop if the RegistrableDomain matches.
(WebCore::WindowEventLoop::WindowEventLoop): Added.
(WebCore::WindowEventLoop::~WindowEventLoop): Added. Removes itself from the map.

  • dom/WindowEventLoop.h:
  • testing/Internals.cpp:

(WebCore::Internals::queueTask): Added.

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

LayoutTests:

Added some tests to make sure the event loop is shared among similar origin documents.

  • http/tests/eventloop: Added.
  • http/tests/eventloop/queue-task-across-cross-site-frames-expected.txt: Added.
  • http/tests/eventloop/queue-task-across-cross-site-frames.html: Added.
  • http/tests/eventloop/queue-task-across-frames-expected.txt: Added.
  • http/tests/eventloop/queue-task-across-frames.html: Added.
  • http/tests/eventloop/resources: Added.
  • http/tests/eventloop/resources/eventloop-helper.html: Added.
5:08 PM Changeset in webkit [252220] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.1/Source

Versioning.

5:04 PM Changeset in webkit [252219] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.1

New tag.

4:57 PM Changeset in webkit [252218] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop GenericEventQueue class now that it is unused
https://bugs.webkit.org/show_bug.cgi?id=203980

Reviewed by Ryosuke Niwa.

Drop GenericEventQueue class now that it is unused. All users have been ported to the HTML
event loop. MainThreadGenericEventQueue remains for now but will get dropped in a follow-up
patch, once it is no longer used.

  • dom/GenericEventQueue.cpp:

(WebCore::MainThreadGenericEventQueue::MainThreadGenericEventQueue):
(WebCore::MainThreadGenericEventQueue::enqueueEvent):
(WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
(WebCore::MainThreadGenericEventQueue::close):
(WebCore::MainThreadGenericEventQueue::cancelAllEvents):
(WebCore::MainThreadGenericEventQueue::hasPendingEvents const):
(WebCore::MainThreadGenericEventQueue::hasPendingEventsOfType const):
(WebCore::MainThreadGenericEventQueue::setPaused):
(WebCore::MainThreadGenericEventQueue::suspend):
(WebCore::MainThreadGenericEventQueue::resume):
(WebCore::MainThreadGenericEventQueue::rescheduleAllEventsIfNeeded):
(WebCore::MainThreadGenericEventQueue::stop):
(WebCore::MainThreadGenericEventQueue::activeDOMObjectName const):
(WebCore::TaskQueueConstructor::construct): Deleted.
(WebCore::TaskQueueConstructor<Timer>::construct): Deleted.
(WebCore::GenericEventQueueBase<T>::GenericEventQueueBase): Deleted.
(WebCore::GenericEventQueueBase<T>::enqueueEvent): Deleted.
(WebCore::GenericEventQueueBase<T>::dispatchOneEvent): Deleted.
(WebCore::GenericEventQueueBase<T>::close): Deleted.
(WebCore::GenericEventQueueBase<T>::cancelAllEvents): Deleted.
(WebCore::GenericEventQueueBase<T>::hasPendingEvents const): Deleted.
(WebCore::GenericEventQueueBase<T>::hasPendingEventsOfType const): Deleted.
(WebCore::GenericEventQueueBase<T>::setPaused): Deleted.
(WebCore::GenericEventQueueBase<T>::suspend): Deleted.
(WebCore::GenericEventQueueBase<T>::resume): Deleted.
(WebCore::GenericEventQueueBase<T>::rescheduleAllEventsIfNeeded): Deleted.
(WebCore::GenericEventQueueBase<T>::stop): Deleted.
(WebCore::GenericEventQueueBase<T>::activeDOMObjectName const): Deleted.
(WebCore::GenericEventQueue::create): Deleted.

  • dom/GenericEventQueue.h:

(WebCore::GenericEventQueueBase::isSuspended const): Deleted.
(WebCore::GenericEventQueueBase::isSuspendedOrPausedByClient const): Deleted.
(WebCore::MainThreadGenericEventQueue::MainThreadGenericEventQueue): Deleted.
(WebCore::GenericEventQueue::GenericEventQueue): Deleted.

4:52 PM Changeset in webkit [252217] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

Layout Test http/tests/appcache/remove-cache.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=199124
<rdar://problem/52008712>

Reviewed by Chris Dumez.

The flakiness probably comes from the use of a setTimeout that might kick in while in most runs, it never kicks in.
When the timer kicks in, the test is reloaded, which triggers a new console log line.
The current console lines do not bring more values than what the test checks with appcache events.
Removing console log lines from the expected file will fix the flakiness.

  • TestExpectations:
  • http/tests/appcache/remove-cache-expected.txt:
  • platform/mac/TestExpectations:
4:37 PM Changeset in webkit [252216] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

[WebAssembly] Inspector's DebuggerCallFrame should be aware of Wasm frames
https://bugs.webkit.org/show_bug.cgi?id=203925

Reviewed by Mark Lam.

The DebuggerCallFrame checks for CallFrame::codeBlock to determine if it the current frame is a
valid JS frame, but since the Wasm interpreter stores the Wasm::FunctionCodeBlock to this slot,
that check is not sufficient. Add an extra check for CalleeBits::isWasm.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::sourceIDForCallFrame):

3:56 PM Changeset in webkit [252215] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.1.2

Tag Safari-608.4.9.1.2.

3:44 PM Changeset in webkit [252214] by yurys@chromium.org
  • 2 edits in trunk/LayoutTests

Web Inspector: http/tests/inspector/target/target-events-for-provisional-page.html is flaky when running with other tests
https://bugs.webkit.org/show_bug.cgi?id=203965
<rdar://problem/56988642>

Reviewed by Devin Rousso.

Enforce enableProcessSwapOnWindowOpen=true for the test so that it PSON is enabled regardless of other tests
that may run before (the test may reuse Page instance from the previous test on which
Page::openedByDOMWithOpener==true).

  • http/tests/inspector/target/target-events-for-provisional-page.html:
3:39 PM Changeset in webkit [252213] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251958): console prompt is automatically focused when page is reloaded
https://bugs.webkit.org/show_bug.cgi?id=203932

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WI._restoreCookieForOpenTabs):
Only attempt to autofocus when Web Inspector is first opened.

3:24 PM Changeset in webkit [252212] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

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

Reviewed by Ryosuke Niwa.

  • dom/ActiveDOMObject.h:
  • workers/Worker.cpp:

(WebCore::Worker::Worker):
(WebCore::Worker::terminate):
(WebCore::Worker::hasPendingActivity const):
(WebCore::Worker::notifyFinished):
(WebCore::Worker::dispatchEvent):
(WebCore::Worker::enqueueEvent): Deleted.

  • workers/Worker.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):

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

[iOS] Add logging and telemetry to more mach lookup rules
https://bugs.webkit.org/show_bug.cgi?id=203978

Reviewed by Brent Fulgham.

Add logging and telemetry to help determine if mach lookup of these services can be denied in the WebContent process.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:16 PM Changeset in webkit [252210] by Kate Cheney
  • 18 edits in trunk/LayoutTests

Many resourceLoadStatistics tests and storageAccess tests using the ITP
Database redirect to the corresponding memory store test after setting
a cookie
https://bugs.webkit.org/show_bug.cgi?id=203958
<rdar://problem/56984114>

Reviewed by John Wilander.

This patch fixes incorrect redirects in some ITP database store tests.
They should redirect back to themselves as opposed to corresponding
memory store tests to be sure they are testing the correct
functionality.

  • http/tests/resourceLoadStatistics/add-blocking-to-redirect-database.html:
  • http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database.html:
  • http/tests/resourceLoadStatistics/cookie-deletion-database.html:
  • http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database.html:
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html:
  • http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database.html:
  • http/tests/resourceLoadStatistics/grandfathering-database.html:
  • http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database.html:
  • http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database.html:
  • http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html:
  • http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html:
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html:
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database.html:
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database.html:
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database.html:
3:16 PM Changeset in webkit [252209] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

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

Reviewed by Ryosuke Niwa.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::close):
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::dispatchEvent):

  • dom/MessagePort.h:
  • dom/TaskSource.h:
3:01 PM Changeset in webkit [252208] by Antti Koivisto
  • 11 edits
    2 adds in trunk/Source/WebCore

Factor matched declarations cache into a class
https://bugs.webkit.org/show_bug.cgi?id=203972

Reviewed by Zalan Bujtas.

Move the code out from StyleResolver and rename "matched properties cache" -> "matched declarations cache"
to better describe it.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::declarationsForOrigin):

Add a helper.

(WebCore::ElementRuleCollector::transferMatchedRules):

Reserve vector capacity before adding rules.

(WebCore::ElementRuleCollector::addMatchedProperties):

  • css/ElementRuleCollector.h:

(WebCore::MatchResult::operator== const):
(WebCore::MatchResult::operator!= const):

Remove the unneeded inline capacity so we can just use MatchResult itself in the cache.

  • css/RuleSet.cpp:

(WebCore::RuleSet::addChildRules):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::invalidateMatchedDeclarationsCache):
(WebCore::StyleResolver::clearCachedDeclarationsAffectedByViewportUnits):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::sweepMatchedPropertiesCache): Deleted.
(WebCore::StyleResolver::computeMatchedPropertiesHash): Deleted.
(WebCore::StyleResolver::findFromMatchedPropertiesCache): Deleted.
(WebCore::StyleResolver::addToMatchedPropertiesCache): Deleted.
(WebCore::StyleResolver::invalidateMatchedPropertiesCache): Deleted.
(WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits): Deleted.
(WebCore::isCacheableInMatchedPropertiesCache): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::MatchedPropertiesCacheItem::MatchedPropertiesCacheItem): Deleted.

  • dom/Document.cpp:

(WebCore::Document::invalidateMatchedPropertiesCacheAndForceStyleRecalc):
(WebCore::Document::updateViewportUnitsOnResize):

  • page/Page.cpp:

(WebCore::Page::updateStyleAfterChangeInEnvironment):

  • style/MatchedDeclarationsCache.cpp: Added.

(WebCore::Style::MatchedDeclarationsCache::MatchedDeclarationsCache):
(WebCore::Style::MatchedDeclarationsCache::isCacheable):
(WebCore::Style::MatchedDeclarationsCache::computeHash):
(WebCore::Style::MatchedDeclarationsCache::find):
(WebCore::Style::MatchedDeclarationsCache::add):
(WebCore::Style::MatchedDeclarationsCache::invalidate):
(WebCore::Style::MatchedDeclarationsCache::clearEntriesAffectedByViewportUnits):
(WebCore::Style::MatchedDeclarationsCache::sweep):

  • style/MatchedDeclarationsCache.h: Added.
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

2:53 PM Changeset in webkit [252207] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

UserMediaController::from(document) can return nullptr
https://bugs.webkit.org/show_bug.cgi?id=203977
<rdar://problem/56908013>

Reviewed by Jer Noble.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::stop): NULL-check the UserMediaController.

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

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

Reviewed by Ryosuke Niwa.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
(WebCore::ServiceWorkerContainer::startMessages):
(WebCore::ServiceWorkerContainer::postMessage):

  • workers/service/ServiceWorkerContainer.h:
2:18 PM Changeset in webkit [252205] by rniwa@webkit.org
  • 16 edits
    4 adds in trunk

Integrate scroll event into HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203839
<rdar://problem/56890922>

Reviewed by Simon Fraser.

Source/WebCore:

Dispatch scroll events on each pending scroll event targets inside the update-the-rendering step
of the event loop as specified in the HTML5 and CSSOM View Module specifications:
https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering
https://drafts.csswg.org/cssom-view/#run-the-scroll-steps

The new behavior also matches that of Chrome and Firefox.

Like resize event, the current visual viewport specification does not specify when scroll event
is dispatched on visualViewport interface: https://github.com/WICG/visual-viewport/issues/66
For now, we always dispatch upon it after dispatching on all pending scroll event targets.

Tests: fast/events/scroll-multiple-elements-in-rendering-update.html

fast/events/scroll-subframe-in-rendering-update.html
fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe.html

  • dom/Document.cpp:

(WebCore::Document::addPendingScrollEventTarget): Added.
(WebCore::Document::setNeedsVisualViewportScrollEvent): Added.
(WebCore::Document::runScrollSteps): Added. This implements run the scroll steps in CSS OM View.

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

(WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent): Deleted.
(WebCore::DocumentEventQueue::enqueueScrollEvent): Deleted.

  • dom/DocumentEventQueue.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::sendScrollEvent):

  • page/Page.cpp:

(WebCore::Page::updateRendering): Invoke runScrollSteps on each document in the frame tree order.

  • page/VisualViewport.cpp:

(WebCore::VisualViewport::update):
(WebCore::VisualViewport::enqueueScrollEvent): Deleted.

  • page/VisualViewport.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::scrollTo):

LayoutTests:

Added tests to test the timing at which scroll events are fired across multiple elements and documents,
and with visualViewport, and updated the existing tests to work with the new timing.

  • editing/selection/overflow-scroll-while-selecting-text.html:
  • fast/events/scroll-multiple-elements-in-rendering-update-expected.txt: Added.
  • fast/events/scroll-multiple-elements-in-rendering-update.html: Added.
  • fast/events/scroll-subframe-in-rendering-update-expected.txt: Added.
  • fast/events/scroll-subframe-in-rendering-update.html: Added.
  • fast/scrolling/programmatic-scroll-to-negative-offset.html:
  • fast/shadow-dom/trusted-event-scoped-flags.html:
  • fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe-expected.txt: Added.
  • fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe.html: Added.
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
1:34 PM Changeset in webkit [252204] by Justin Fan
  • 5 edits in trunk/LayoutTests

REGRESSION: r252121 introduced timeout in webgl/1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html
https://bugs.webkit.org/show_bug.cgi?id=203949

Unreviewed test expectation gardening.

shader-with-non-reserved-words takes dozens of minutes to pass. Skip everywhere.

  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
1:07 PM Changeset in webkit [252203] by Simon Fraser
  • 4 edits in trunk/LayoutTests

REGRESSION (r252161): 3 transitions/ tests time-out
https://bugs.webkit.org/show_bug.cgi?id=203966

Reviewed by Dean Jackson.

Fix the shadow parsing code to deal with non-integral values.

  • legacy-animation-engine/transitions/resources/transition-test-helpers.js:

(isShadow):

  • transitions/resources/transition-test-helpers.js:

(isShadow):

12:36 PM Changeset in webkit [252202] by Devin Rousso
  • 10 edits
    2 copies
    5 moves
    48 adds
    3 deletes in trunk

Web Inspector: REGRESSION(r250087): inspector/model/remote-object.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=202934
<rdar://problem/56270900>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

In r250087, the inspector injected script was changed so that remote objects actually
iterate the keys of an array and generate a property descriptor for each. While this worked
fine (and was performant) for fetching remote objects, this was not efficient when creating
object previews, as that path wouldn't be limited by any sort of fetchCount, meaning that
a descriptor for every index would be created even though only the first 10 would be used.

Refactor the inspector injected script code so that both the fetch and preview paths only
examine exactly the number of properties desired instead of considering all of them and then
slicing to fit.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._getProperties):
(InjectedScript.prototype._forEachPropertyDescriptor): Added.
(InjectedScript.prototype._forEachPropertyDescriptor.createFakeValueDescriptor): Added.
(InjectedScript.prototype._forEachPropertyDescriptor.processDescriptor): Added.
(InjectedScript.prototype._forEachPropertyDescriptor.processProperty): Added.
(RemoteObject.prototype._generatePreview):
(RemoteObject.prototype._appendPropertyPreview): Added.
(RemoteObject.prototype._appendPropertyPreview.appendPreview): Added.
(InjectedScript.prototype._propertyDescriptors): Deleted.
(InjectedScript.prototype._propertyDescriptors.processProperties): Deleted.
(InjectedScript.prototype._propertyDescriptors.arrayIndexPropertyNames): Deleted.
(RemoteObject.prototype._appendPropertyPreviews): Deleted.

Source/WebInspectorUI:

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.addShowMoreIfNeeded):
Drive-by: ensure that the indeterminate progress spinner is added after the last button.

LayoutTests:

Split inspector/model/remote-object.html into separate tests for each type of object being
tested, as well as specialized tests for extremely large values. This allows us to better
know which specific expression can cause a timeout.

  • inspector/model/remote-object.html: Removed.
  • inspector/model/remote-object-expected.txt: Removed.
  • platform/mac-wk1/inspector/model/remote-object-expected.txt: Removed.
  • inspector/model/remote-object/array.html: Added.
  • inspector/model/remote-object/array-expected.txt: Added.
  • inspector/model/remote-object/array-large.html: Added.
  • inspector/model/remote-object/array-large-expected.txt: Added.
  • inspector/model/remote-object/boolean.html: Added.
  • inspector/model/remote-object/boolean-expected.txt: Added.
  • inspector/model/remote-object/class.html: Added.
  • inspector/model/remote-object/class-expected.txt: Added.
  • inspector/model/remote-object/date.html: Added.
  • inspector/model/remote-object/date-expected.txt: Added.
  • inspector/model/remote-object/error.html: Added.
  • inspector/model/remote-object/error-expected.txt: Added.
  • inspector/model/remote-object/function.html: Added.
  • inspector/model/remote-object/function-expected.txt: Added.
  • inspector/model/remote-object/immutable.html: Added.
  • inspector/model/remote-object/immutable-expected.txt: Added.
  • inspector/model/remote-object/iterator.html: Added.
  • inspector/model/remote-object/iterator-expected.txt: Added.
  • inspector/model/remote-object/iterator-large.html: Added.
  • inspector/model/remote-object/iterator-large-expected.txt: Added.
  • inspector/model/remote-object/map.html: Added.
  • inspector/model/remote-object/map-expected.txt: Added.
  • inspector/model/remote-object/map-large.html: Added.
  • inspector/model/remote-object/map-large-expected.txt: Added.
  • inspector/model/remote-object/null.html: Added.
  • inspector/model/remote-object/null-expected.txt: Added.
  • inspector/model/remote-object/number.html: Added.
  • inspector/model/remote-object/number-expected.txt: Added.
  • platform/mac-wk1/inspector/number-expected.txt: Added.
  • inspector/model/remote-object/object.html: Added.
  • inspector/model/remote-object/object-expected.txt: Added.
  • inspector/model/remote-object/object-large.html: Added.
  • inspector/model/remote-object/object-large-expected.txt: Added.
  • inspector/model/remote-object/promise.html: Added.
  • inspector/model/remote-object/promise-expected.txt: Added.
  • inspector/model/remote-object/regexp.html: Added.
  • inspector/model/remote-object/regexp-expected.txt: Added.
  • inspector/model/remote-object/set.html: Added.
  • inspector/model/remote-object/set-expected.txt: Added.
  • inspector/model/remote-object/set-large.html: Added.
  • inspector/model/remote-object/set-large-expected.txt: Added.
  • inspector/model/remote-object/string.html: Added.
  • inspector/model/remote-object/string-expected.txt: Added.
  • inspector/model/remote-object/string-large.html: Added.
  • inspector/model/remote-object/string-large-expected.txt: Added.
  • inspector/model/remote-object/undefined.html: Added.
  • inspector/model/remote-object/undefined-expected.txt: Added.
  • inspector/model/remote-object/dom.html: Renamed from LayoutTests/inspector/model/remote-object-dom.html.
  • inspector/model/remote-object/dom-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-dom-expected.txt.
  • inspector/model/remote-object/iterators-mutated.html: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators.html.
  • inspector/model/remote-object/iterators-mutated-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators-expected.txt.
  • inspector/model/remote-object/resources/remote-object-utilities.js: Renamed from LayoutTests/inspector/model/resources/remote-object-utilities.js.
  • inspector/runtime/getDisplayableProperties.html:
  • inspector/runtime/getDisplayableProperties-expected.txt:
  • inspector/runtime/getProperties.html:
  • inspector/runtime/getProperties-expected.txt:

Drive-by: fix assertion for when the __proto__ is included if fetchStart is 0.

12:31 PM Changeset in webkit [252201] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r249451): missing "Reveal in DOM Tree" on nodes logged to the console
https://bugs.webkit.org/show_bug.cgi?id=203836

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.populateContextMenu):
DOM trees in the console are marked as being non-editable, which is intended to prevent
modifications (e.g. changing an attribute) from being made in the console as the DOM tree
there is not hooked up to the associated DOM agent. In r249451 however, this guard was over
expanded to include non-editing actions, like "Reveal in DOM Tree" and DOM breakpoints.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._handleContextMenuEvent):
Drive-by: add a separator before "Copy Selected" so it doesn't end up in the same group as

any "Collapse All" from a WI.TreeOutline.

12:17 PM Changeset in webkit [252200] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Local Resource Overrides: automatically show a file picker when attempting to create an override for non-text resources
https://bugs.webkit.org/show_bug.cgi?id=203917

Reviewed by Timothy Hatcher.

Since there's no way to edit non-text resources (e.g. images, fonts, etc.) in Web Inspector,
when creating a local override for non-text resources, default to showing a file picker and
creating a local override from the content and MIME type of whatever file is chosen.

Still provide a way (shift-click) to create a local override for non-text resources from the
resource's contents, as that can be useful if the user just wants to change some headers.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.async createLocalResourceOverride):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):
(WI.ResourceContentView.prototype.get createLocalResourceOverrideTooltip): Added.
(WI.ResourceContentView.prototype.requestLocalResourceOverrideInitialContent): Added.
(WI.ResourceContentView.prototype.async _getContentForLocalResourceOverrideFromFile): Added.
(WI.ResourceContentView.prototype._handleCreateLocalResourceOverride):
(WI.ResourceContentView.prototype._handleImportLocalResourceOverride):
(WI.ResourceContentView.prototype.localResourceOverrideInitialContent): Deleted.
(WI.ResourceContentView.prototype.async _handleCreateLocalResourceOverride): Deleted.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.get createLocalResourceOverrideTooltip): Added.
(WI.TextResourceContentView.prototype.requestLocalResourceOverrideInitialContent): Added.
(WI.TextResourceContentView.prototype.localResourceOverrideInitialContent): Deleted.

  • Localizations/en.lproj/localizedStrings.js:
12:02 PM Changeset in webkit [252199] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: add a marker for when a stop was requested
https://bugs.webkit.org/show_bug.cgi?id=203935

Reviewed by Timothy Hatcher.

After r244195, the Web Inspector frontend doesn't stop updating the current time marker
until after it receives all of the corresponding *.trackingComplete events. This means
that sometimes, the current time marker can move far past the time at which the stop was
requested, such as if there's a blocking script.

We should indicate where the stop was requested, as that is often right after a particular
issue is reproduced during a timeline recording, rather than have the user try to figure out
where they stopped.

Only keep a marker for the last stop request, and hide the marker once capturing resumes.

It's still useful to have the current time marker continue updating, as we should show all
the information we have about captured things, such as blocking scripts.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview):
(WI.TimelineOverview.prototype._handleTimelineCapturingStateChanged):

  • UserInterface/Models/TimelineMarker.js:
  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype.addMarker):

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .markers > .marker.stopping-time): Added.
(.timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker:matches(.stopping-time, .current-time)::after): Added.
(@media (prefers-color-scheme: dark) .timeline-ruler > .markers > .marker.stopping-time): Added.
(.timeline-ruler > .markers > .marker.current-time::after): Deleted.
Make the current time marker always on top (z-index).

  • Localizations/en.lproj/localizedStrings.js:
11:59 AM Changeset in webkit [252198] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251958): automatic console prompt focusing prevents any "space" shortcuts from working
https://bugs.webkit.org/show_bug.cgi?id=203939

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WI.isShowingTimelineTab): Added.
(WI.isShowingAuditTab): Added.
(WI._restoreCookieForOpenTabs):

11:46 AM Changeset in webkit [252197] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Unable to get object details - GlobalObject
https://bugs.webkit.org/show_bug.cgi?id=203930
<rdar://problem/56960937>

In r248286, calls to Heap.snapshot, Heap.getPreview, and Heap.getRemoteObject were
moved to the WI.HeapManager instead of being inside view code. During this move, extra
WI.reportInternalError calls were added, which wasn't entirely correct as it is fully
possible (and expected) that any of these commands are invoked with old heap snapshot nodes
that may no longer exist. As such, calling any error an "internal error" isn't strictly
correct, and instead should just be a log. Also, the frontend code that calls these commands
is able to handle errors, again because it is expected.

Reviewed by Brian Burg.

  • UserInterface/Controllers/HeapManager.js:

(WI.HeapManager.prototype.snapshot):
(WI.HeapManager.prototype.getPreview):
(WI.HeapManager.prototype.getRemoteObject):

11:42 AM Changeset in webkit [252196] by commit-queue@webkit.org
  • 4 edits in trunk

JSTests:
didPassSomeTestsSilenty is misspelled in standalone-pre.js
https://bugs.webkit.org/show_bug.cgi?id=203948

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-07
Reviewed by Yusuke Suzuki.

  • stress/resources/standalone-pre.js:

LayoutTests:
didPassSomeTestsSilenty and didFaileSomeTests are misspelled in standalone-pre.js
https://bugs.webkit.org/show_bug.cgi?id=203948

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-07
Reviewed by Yusuke Suzuki.

  • resources/standalone-pre.js:
11:24 AM Changeset in webkit [252195] by Ross Kirsling
  • 3 edits in trunk/JSTests

Unskip test262 tests for async-iteration
https://bugs.webkit.org/show_bug.cgi?id=203921

Reviewed by Keith Miller.

This should have been done two years ago, it seems.

  • test262/config.yaml:
  • test262/expectations.yaml:
11:16 AM Changeset in webkit [252194] by Alan Coon
  • 13 edits
    1 move
    2 adds in branches/safari-608-branch/Source

Cherry-pick r252175. rdar://problem/56971561

AX: WKWebView does not shift Accessibility Focus for Catalyst (203798)
https://bugs.webkit.org/show_bug.cgi?id=203798

Patch by Eric Liang <ericliang@apple.com> on 2019-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

Changed to use the new cocoa directory instead of macOS only

  • accessibility/mac/AXObjectCacheMac.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

Source/WebCore/PAL:

Changed the path of NSAccessibilitySPI from Mac to Cocoa

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NSAccessibilitySPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/NSAccessibilitySPI.h.

Source/WebKit:

Added the code to register/unregister remote UI Process identifier on the host app.
This is used so that the host app can appear as the sender for notifications sent from its web processes. Unfortunately this has to be done in WebKit: in accessibility bundles the swizzled code is not called because of bundle loading time.
Added AppKit softlink for Mac catalyst.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/ios/AppKitSoftLink.h: Added.
  • UIProcess/ios/AppKitSoftLink.mm: Added.
  • UIProcess/ios/ViewGestureControllerIOS.mm: (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):
  • UIProcess/ios/WKContentView.mm: (-[WKContentView _updateRemoteAccessibilityRegistration:]): (-[WKContentView _accessibilityRegisterUIProcessTokens]): (-[WKContentView _processDidExit]):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

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

11:12 AM Changeset in webkit [252193] by Alan Coon
  • 13 edits
    1 move
    2 adds in branches/safari-608.4.9.1-branch/Source

Cherry-pick r252175. rdar://problem/56971561

AX: WKWebView does not shift Accessibility Focus for Catalyst (203798)
https://bugs.webkit.org/show_bug.cgi?id=203798

Patch by Eric Liang <ericliang@apple.com> on 2019-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

Changed to use the new cocoa directory instead of macOS only

  • accessibility/mac/AXObjectCacheMac.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

Source/WebCore/PAL:

Changed the path of NSAccessibilitySPI from Mac to Cocoa

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NSAccessibilitySPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/NSAccessibilitySPI.h.

Source/WebKit:

Added the code to register/unregister remote UI Process identifier on the host app.
This is used so that the host app can appear as the sender for notifications sent from its web processes. Unfortunately this has to be done in WebKit: in accessibility bundles the swizzled code is not called because of bundle loading time.
Added AppKit softlink for Mac catalyst.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/ios/AppKitSoftLink.h: Added.
  • UIProcess/ios/AppKitSoftLink.mm: Added.
  • UIProcess/ios/ViewGestureControllerIOS.mm: (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):
  • UIProcess/ios/WKContentView.mm: (-[WKContentView _updateRemoteAccessibilityRegistration:]): (-[WKContentView _accessibilityRegisterUIProcessTokens]): (-[WKContentView _processDidExit]):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

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

11:10 AM Changeset in webkit [252192] by Alan Coon
  • 7 edits in branches/safari-608.4.9.1-branch/Source

Versioning.

10:31 AM Changeset in webkit [252191] by commit-queue@webkit.org
  • 6 edits in trunk

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

Patch by Alexey Shvayka <shvaikalesh@gmail.com> on 2019-11-07
Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

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

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

  • runtime/JSObjectInlines.h:

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

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performHasProperty): Walk the prototype chain in performDefaultHasProperty.

10:30 AM Changeset in webkit [252190] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] rename RunJavaScriptCoreTestsToT to RunJSCTestsWithoutPatch
https://bugs.webkit.org/show_bug.cgi?id=203959

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJSCTestsWithoutPatch): Renamed.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
10:03 AM Changeset in webkit [252189] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][MarginCollapsing] Drag anonymous block level boxes into margin collapsing
https://bugs.webkit.org/show_bug.cgi?id=203927
<rdar://problem/56963636>

Reviewed by Antti Koivisto.

We've been ignoring anonymous block level boxes in the context of margin collapsing. Now with IFC, we can't really do that anymore.
This patch removes the early bailout on anon boxes and addresses the fallout.

  • layout/MarginTypes.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):

9:31 AM Changeset in webkit [252188] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.26.2

WPE WebKit 2.26.2

9:30 AM Changeset in webkit [252187] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.26.2 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.26.2.
9:30 AM Changeset in webkit [252186] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.26/Source

Unreviewed build fixed for non-unified builds.

Source/WebCore:

No new tests needed.

  • Modules/indexeddb/shared/IDBGetAllRecordsData.cpp: Add missing inclusion of the

wtf/text/StringConcatenateNumbers.h header.

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp: Ditto.
  • page/DOMWindowExtension.cpp: Add missing inclusion of the Document.h header.
  • platform/glib/UserAgentGLib.cpp: Add missing inclusion of the HTTPParsers.h header.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp: Add missin inclusion of the Logging.h header
9:05 AM Changeset in webkit [252185] by achristensen@apple.com
  • 18 edits in trunk

Re-enable NSURLSession isolation after r252116
https://bugs.webkit.org/show_bug.cgi?id=203934
<rdar://problem/56921584>

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/network/StoredCredentialsPolicy.h:

Source/WebKit:

r252116 was a rollout of r248640, which introduced cases where data tasks from different NSURLSessions
which can have the same task identifiers were put into the same maps. This key collision caused data from the wrong
tasks to be sent to NetworkResourceLoader, causing rare and strange loading bugs. In order to prevent insertion into
wrong maps again, I made a new abstraction, SessionWrapper, which wraps a NSURLSession, its delegate, and all maps
that are scoped to that NSURLSession. Along the way I found a few other places where we had made similar mistakes.

Covered by an API test which would've failed before r252116 because it exercises the key collision condition,
and by tests which were skipped in r252116 and I now unskipped.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithSessionWrapper:withCredentials:]):
(-[WKNetworkSessionDelegate sessionInvalidated]):
(-[WKNetworkSessionDelegate existingTask:]):
(-[WKNetworkSessionDelegate sessionCocoa]):
(-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
(processServerTrustEvaluation):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(-[WKNetworkSessionDelegate existingWebSocketTask:]):
(WebKit::SessionWrapper::initialize):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSession):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::isolatedSession):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):
(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]): Deleted.
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessCookielessSession): Deleted.
(WebKit::NetworkSessionCocoa::session): Deleted.
(WebKit::NetworkSessionCocoa::dataTaskForIdentifier): Deleted.
(WebKit::NetworkSessionCocoa::downloadTaskWithResumeData): Deleted.
(WebKit::NetworkSessionCocoa::addDownloadID): Deleted.
(WebKit::NetworkSessionCocoa::downloadID): Deleted.
(WebKit::NetworkSessionCocoa::takeDownloadID): Deleted.
(WebKit::NetworkSessionCocoa::webSocketDataTaskForIdentifier): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _logUserInteraction:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(-[DataTaskIdentifierCollisionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DataTaskIdentifierCollisionDelegate waitForMessages:]):
(-[DataTaskIdentifierCollisionDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TEST):

LayoutTests:

  • platform/wk2/TestExpectations:

Re-enable skipped tests.

8:32 AM Changeset in webkit [252184] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Add support for remotes file for EWS builders
https://bugs.webkit.org/show_bug.cgi?id=203899

Patch by Paulo Matos <Paulo Matos> on 2019-11-07
Reviewed by Aakash Jain.

Require to support builders that cross-compile and run tests on native machines
through the use of --remote-config-file.

  • BuildSlaveSupport/ews-build/factories.py:

(Factory.init):
(StyleFactory.init):
(WatchListFactory.init):

  • BuildSlaveSupport/ews-build/loadConfig.py:

(loadBuilderConfig):

  • BuildSlaveSupport/ews-build/steps.py:

(ConfigureBuild.init):
(ConfigureBuild.start):
(RunJavaScriptCoreTests.start):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.test_remote_success):

6:55 AM Changeset in webkit [252183] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext(uint64_t)
https://bugs.webkit.org/show_bug.cgi?id=203918

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-07
Reviewed by Jer Noble.

Postpone the transition to exit fullscreen of a video element
before the previous transition of fullscreen mode change is completed.

Fix a flakey layout test (media/video-autoplay.html). No new test is needed.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

6:15 AM Changeset in webkit [252182] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

Rename AXIsolatedTreeNode to AXIsolatedObject for consistency with AXCoreObject and AccessibilityObject.
https://bugs.webkit.org/show_bug.cgi?id=203913

Reviewed by Chris Fleizach.

No new tests needed, no new functionality.

  • Renamed AXIsolatedTreeNode as AXIsolatedObject.
  • This makes the naming consistent with AXCoreObject and AccessibilityObject.
  • Some code cleanup in WebAccessibilityObjectWrapperBase.h.
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedAccessibilityTree):

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

(WebCore::AXIsolatedTree::nodeInTreeForID):
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::focusedUIElement):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setRoot):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

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

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setProperty):
(WebCore::AXIsolatedObject::appendChild):
(WebCore::AXIsolatedObject::setParent):
(WebCore::AXIsolatedObject::setTreeIdentifier):
(WebCore::AXIsolatedObject::children):
(WebCore::AXIsolatedObject::focusedUIElement const):
(WebCore::AXIsolatedObject::parentObjectUnignored const):
(WebCore::AXIsolatedObject::accessibilityHitTest const):
(WebCore::AXIsolatedObject::tree const):
(WebCore::AXIsolatedObject::rectAttributeValue const):
(WebCore::AXIsolatedObject::doubleAttributeValue const):
(WebCore::AXIsolatedObject::unsignedAttributeValue const):
(WebCore::AXIsolatedObject::boolAttributeValue const):
(WebCore::AXIsolatedObject::stringAttributeValue const):
(WebCore::AXIsolatedObject::intAttributeValue const):
(WebCore::AXIsolatedObject::updateBackingStore):
(WebCore::AXIsolatedTreeNode::AXIsolatedTreeNode): Deleted.
(WebCore::AXIsolatedTreeNode::create): Deleted.
(WebCore::AXIsolatedTreeNode::initializeAttributeData): Deleted.
(WebCore::AXIsolatedTreeNode::setProperty): Deleted.
(WebCore::AXIsolatedTreeNode::appendChild): Deleted.
(WebCore::AXIsolatedTreeNode::setParent): Deleted.
(WebCore::AXIsolatedTreeNode::setTreeIdentifier): Deleted.
(WebCore::AXIsolatedTreeNode::children): Deleted.
(WebCore::AXIsolatedTreeNode::focusedUIElement const): Deleted.
(WebCore::AXIsolatedTreeNode::parentObjectUnignored const): Deleted.
(WebCore::AXIsolatedTreeNode::accessibilityHitTest const): Deleted.
(WebCore::AXIsolatedTreeNode::tree const): Deleted.
(WebCore::AXIsolatedTreeNode::rectAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::doubleAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::unsignedAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::boolAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::stringAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::intAttributeValue const): Deleted.
(WebCore::AXIsolatedTreeNode::updateBackingStore): Deleted.

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
5:21 AM Changeset in webkit [252181] by Andres Gonzalez
  • 12 edits in trunk/Source/WebCore

Implement AXIsolatedTreeNode::roleDescription.
https://bugs.webkit.org/show_bug.cgi?id=203863
<rdar://problem/56934443>

Reviewed by Chris Fleizach.

No new tests needed, no new functionality.

AccessibilityObjectWrapper cannot call any of the AX.*Text functions to
retrieve localized role descriptions, because when running on the
secondary thread, those AtomStrings are not accessible. Moreover, some
of the special cases require access to DOM objects that are not
available in the secondary thread. Therefore, added
AXCoreObject::rolePlatformDescription that runs in the main thread to
initialize the corresponding attribute in AXIsolatedTreeNode.
rolePlatformString, createPlatformRoleMap, roleToPlatformString,
ariaLandmarkRoleDescription, are helper functions. The platform
functions allow to customize the behavior of roleDescription in each
platform. The platform overrides are implemented for mac. Other
platforms are pending.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::rolePlatformString const):
(WebCore::AccessibilityObject::rolePlatformDescription const):
(WebCore::AccessibilityObject::ariaLandmarkRoleDescription const):
(WebCore::AccessibilityObject::roleDescription const):
(WebCore::Accessibility::createPlatformRoleMap):
(WebCore::Accessibility::roleToPlatformString):

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

(WebCore::AXIsolatedTreeNode::initializeAttributeData):

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

(WebCore::AccessibilityObject::rolePlatformString const):
(WebCore::AccessibilityObject::rolePlatformDescription const):
(WebCore::Accessibility::createPlatformRoleMap):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase accessibilityObject]):
(-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]): Implementation moved to AccessibilityObject.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper role]): Special cases moved to rolePlatformString.
(-[WebAccessibilityObjectWrapper roleDescription]):
(createAccessibilityRoleMap): Deleted, became Accessibility::createPlatformRoleMap.
(roleValueToNSString): Deleted, became Accessibility::roleToPlatformString.

  • platform/LocalizedStrings.cpp:

(WebCore::AXARIAContentGroupText):
(WebCore::AXHorizontalRuleDescriptionText):
(WebCore::AXMarkText):

  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::AXARIAContentGroupText): Deleted, moved to LocalizedStrings.cpp.
(WebCore::AXHorizontalRuleDescriptionText): Deleted, moved to LocalizedStrings.cpp.
(WebCore::AXMarkText): Deleted, moved to LocalizedStrings.cpp.

4:09 AM Changeset in webkit [252180] by Carlos Garcia Campos
  • 6 edits in trunk

WebDriver: correctly handle errors when focusing element before sending key events
https://bugs.webkit.org/show_bug.cgi?id=203945

Reviewed by Carlos Alberto Lopez Perez.

Source/WebDriver:

We are throwing an exception that is not correctly handled.

Fixes: imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_not_a_focusable_element

imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_display_none
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_visibility_hidden
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_hidden
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_disabled

  • Session.cpp:

(WebDriver::Session::elementSendKeys): Raise ElementNotInteractable error when element is not focusable.

Source/WebKit:

Handle ElementNotInteractable JavaScript exception to generate the appropriate Automation error.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

WebDriverTests:

Remove expectations for tests that are now passing.

1:52 AM Changeset in webkit [252179] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Indentation in ThreadGlobalData.h is incorrect
https://bugs.webkit.org/show_bug.cgi?id=203895

Patch by Chris Lord <clord@igalia.com> on 2019-11-07
Reviewed by Žan Doberšek.

No new tests -- no change in behavior.

  • platform/ThreadGlobalData.h:

(WebCore::ThreadGlobalData::ThreadGlobalData::cachedResourceRequestInitiators):
(WebCore::ThreadGlobalData::ThreadGlobalData::eventNames):
(WebCore::ThreadGlobalData::ThreadGlobalData::threadTimers):
(WebCore::ThreadGlobalData::ThreadGlobalData::qualifiedNameCache):
(WebCore::ThreadGlobalData::ThreadGlobalData::cachedConverterICU):
(WebCore::ThreadGlobalData::ThreadGlobalData::currentState const):
(WebCore::ThreadGlobalData::ThreadGlobalData::setCurrentState):
(WebCore::ThreadGlobalData::ThreadGlobalData::isInRemoveAllEventListeners const):
(WebCore::ThreadGlobalData::ThreadGlobalData::setIsInRemoveAllEventListeners):

12:06 AM Changeset in webkit [252178] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

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

Reviewed by Chris Dumez.

VRDisplay schedules asynchronous execution of events using the WindowEventLoop instead of
synchronously firing them. WindowEventLoop does correctly suspend while in cache.

Apart from that suspend()/resume() were implemented by forcing m_scriptedAnimationController
to suspend the VR request animation frame machinery while in cache.

Last but not least, stopPresenting() is now also called on suspension.

No new tests were added as there is no testing machinery for WebVR so far. It's unclear how
this unreleased feature will evolve as it's being replaced by WebXR.

  • Modules/webvr/VRDisplay.cpp:

(WebCore::VRDisplay::dispatchVRDisplayEventInWindowEventLoop):
(WebCore::VRDisplay::platformDisplayConnected): Use dispatchVRDisplayEventInWindowEventLoop.
(WebCore::VRDisplay::platformDisplayDisconnected): Ditto.
(WebCore::VRDisplay::platformDisplayMounted): Ditto.
(WebCore::VRDisplay::platformDisplayUnmounted): Ditto.
(WebCore::VRDisplay::suspend): Added.
(WebCore::VRDisplay::resume): Added.
(WebCore::VRDisplay::stop): Call stopPresenting().
(WebCore::VRDisplay::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/webvr/VRDisplay.h:

Nov 6, 2019:

11:27 PM Changeset in webkit [252177] by mark.lam@apple.com
  • 10 edits in trunk/Source

Remove remnants of support code for an upwards growing stack.
https://bugs.webkit.org/show_bug.cgi?id=203942

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • runtime/VM.cpp:

(JSC::VM::updateStackLimits):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:

(JSC::VM::isSafeToRecurse const):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse const):

Source/WTF:

We haven't supported an upwards growing stack in years, and a lot of code has
since been written specifically with only a downwards growing stack in mind (e.g.
the LLInt, the JITs). Also, all our currently supported platforms use a downward
growing stack.

We should remove the remnants of support code for an upwards growing stack. The
presence of that code is deceptive in that it conveys support for an upwards
growing stack where this hasn't been the case in years.

  • wtf/StackBounds.cpp:

(WTF::StackBounds::newThreadStackBounds):
(WTF::StackBounds::currentThreadStackBoundsInternal):
(WTF::StackBounds::stackDirection): Deleted.
(WTF::testStackDirection2): Deleted.
(WTF::testStackDirection): Deleted.

  • wtf/StackBounds.h:

(WTF::StackBounds::size const):
(WTF::StackBounds::contains const):
(WTF::StackBounds::recursionLimit const):
(WTF::StackBounds::StackBounds):
(WTF::StackBounds::isGrowingDownwards const):
(WTF::StackBounds::checkConsistency const):
(WTF::StackBounds::isGrowingDownward const): Deleted.

  • wtf/StackStats.cpp:

(WTF::StackStats::CheckPoint::CheckPoint):
(WTF::StackStats::CheckPoint::~CheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):

11:21 PM Changeset in webkit [252176] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

Remove unimplemented property error log in when getting a property value from a computed style
https://bugs.webkit.org/show_bug.cgi?id=203943

Reviewed by Simon Fraser.

In r251581, the list of computed CSS properties was changed to be autogenerated from 'CSSProperties.json'.
One issue that arose from this was that -webkit-text-decorations-in-effect was no longer part of the
CSSComputedStyleDeclaration, which caused a number of editing tests to fail, as that property is used
for holding internal state related to various editing commands (e.g. document.execCommand(...)). In
order to get around this, ComputedStyleExtractor::copyProperties() was modified to instead copy all CSS
properties, regardless of whether they're part of the set of computed CSS properties. Unfortunately, this
had a side effect of triggering a longstanding LOG_ERROR (added in r6178) when attempting to retrieve
the value of certain CSS properties (e.g. -internal-text-autosizing-status).

Since this code path can be triggered by JavaScript (e.g. getComputedStyle(node).getPropertyCSSValue("...")),
it doesn't add much benefit to have this log, especially since the code itself is already annotated with
comments/FIXMEs for CSS properties that don't have a computed value.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::logUnimplementedPropertyID): Deleted.

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):

11:03 PM Changeset in webkit [252175] by commit-queue@webkit.org
  • 13 edits
    1 move
    2 adds in trunk/Source

AX: WKWebView does not shift Accessibility Focus for Catalyst (203798)
https://bugs.webkit.org/show_bug.cgi?id=203798

Patch by Eric Liang <ericliang@apple.com> on 2019-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

Changed to use the new cocoa directory instead of macOS only

  • accessibility/mac/AXObjectCacheMac.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

Source/WebCore/PAL:

Changed the path of NSAccessibilitySPI from Mac to Cocoa

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NSAccessibilitySPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/NSAccessibilitySPI.h.

Source/WebKit:

Added the code to register/unregister remote UI Process identifier on the host app.
This is used so that the host app can appear as the sender for notifications sent from its web processes. Unfortunately this has to be done in WebKit: in accessibility bundles the swizzled code is not called because of bundle loading time.
Added AppKit softlink for Mac catalyst.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/ios/AppKitSoftLink.h: Added.
  • UIProcess/ios/AppKitSoftLink.mm: Added.
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _updateRemoteAccessibilityRegistration:]):
(-[WKContentView _accessibilityRegisterUIProcessTokens]):
(-[WKContentView _processDidExit]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:
10:37 PM Changeset in webkit [252174] by Keith Rollin
  • 43 edits in trunk/Source/WebKit

Update availability annotations to match the macOS 10.15 and iOS 13.0 GM SDKs
https://bugs.webkit.org/show_bug.cgi?id=202243
<rdar://problem/55720747>

Reviewed by Brent Fulgham.

Changed WK_MAC_TBA and WK_IOS_TBA to 10.15 and 13.0, respectively, in
all declarations that appear in the GM SDKs.

  • Configurations/WebKit.xcconfig:
  • Shared/API/Cocoa/WKMain.h:
  • UIProcess/API/Cocoa/NSAttributedString.h:
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.h:
  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKErrorPrivate.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKNavigationResponsePrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKPreviewActionItem.h:
  • UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h:
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKSnapshotConfiguration.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
  • UIProcess/API/Cocoa/_WKContentRuleListAction.h:
  • UIProcess/API/Cocoa/_WKCustomHeaderFields.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKInspectorWindow.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKTextInputContext.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/_WKTouchEventGenerator.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
8:06 PM Changeset in webkit [252173] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.2/Source

Versioning.

8:05 PM Changeset in webkit [252172] by Antti Koivisto
  • 7 edits in trunk

REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203366
<rdar://problem/56580680>

Reviewed by Simon Fraser.

Source/WebKit:

WKBundlePageForceRepaint may fail to do synchronous layer flush if there is a pending layer flush in-flight and waiting
for completion message from UI process. Layer flush also flushes pending editor state so that doesn't get done either.
This may cause randomness in test results.

In this case the randomness is the switch between simple and complex line layout, triggered by editor state flush. The results
between line layout paths are observably identical but produce slightly different render tree dumps.

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

(WKBundlePageFlushPendingEditorStateUpdate):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

Add a function for forcing editor state flush, called from the test runner dump() function.

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dump):

LayoutTests:

  • platform/ios/TestExpectations:
8:03 PM Changeset in webkit [252171] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix watchOS build after r252011.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::startBackgroundActivityForFullscreenInput):

8:03 PM Changeset in webkit [252170] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.2

New tag.

7:36 PM Changeset in webkit [252169] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Change the UIWebView layer border colors to more strongly differentiate them from WKWebView's colors
https://bugs.webkit.org/show_bug.cgi?id=203940
rdar://problem/56708548

Reviewed by Tim Horton, Wenson Hsieh.

Change layer border colors (which also affect the repaint counter) in UIWebView to use
a chartreuse color, so it's easy to tell at a glance whether an app is using the deprecated
UIWebView.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::colorForGridTileBorder const):

6:53 PM Changeset in webkit [252168] by Nikita Vasilyev
  • 11 edits in trunk

Web Inspector: Display color picker for p3 colors
https://bugs.webkit.org/show_bug.cgi?id=203436
<rdar://problem/56635062>

Reviewed by Brian Burg.

Source/WebInspectorUI:

For p3 colors, display ColorSquare with display-p3 gamut.
Continue showing ColorSquare with sRGB gamut by default.

  • UserInterface/Base/Setting.js:
  • UserInterface/Models/Color.js:

(WI.Color):
(WI.Color.rgb2hsv):
(WI.Color.hsv2rgb.fraction):
(WI.Color.hsv2rgb):
(WI.Color.prototype.get hsla):
(WI.Color.prototype.isKeyword):

  • UserInterface/Views/ColorPicker.css:

(.color-picker > .hue):
(@media (color-gamut: p3)):
(.color-picker.gamut-p3 > .hue):

  • UserInterface/Views/ColorPicker.js:

(WI.ColorPicker.prototype._updateColor):
(WI.ColorPicker.prototype._updateOpacitySlider):
(WI.ColorPicker.prototype._handleFormatChange):
Introduce gamut parameter. Previously, the only available gamut was sRGB.

  • UserInterface/Views/ColorSquare.css:

(.color-square > .crosshair):
Update the crosshair style to look better for both light and dark backgrounds.

  • UserInterface/Views/ColorSquare.js:

(WI.ColorSquare):
(WI.ColorSquare.prototype.get tintedColor):
(WI.ColorSquare.prototype.set tintedColor):
(WI.ColorSquare.prototype._setCrosshairPosition):
(WI.ColorSquare.prototype._updateBaseColor):
(WI.ColorSquare.prototype._updateCrosshairBackground):

  • UserInterface/Views/InlineSwatch.js:

Make p3 color picker a preview (e.g. STP-only) feature.

LayoutTests:

Add tests for WI.Color.rgb2hsv and WI.Color.hsv2rgb.

  • inspector/model/color-expected.txt:
  • inspector/model/color.html:
6:42 PM Changeset in webkit [252167] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/bugs.webkit.org

Support CSS Dark Mode for PrettyDiff.rb.
https://bugs.webkit.org/show_bug.cgi?id=203874.

Patch by James Savage <james.savage@apple.com> on 2019-11-06
Reviewed by Tim Horton.

  • PrettyPatch/PrettyPatch.rb: Modify CSS to support dark mode. I used

CSS variables in places where colors were shared, but otherwise provided
alternate style rules individually. Some colors looked fine in both
appearances, and those I left with only their light definition.

6:28 PM Changeset in webkit [252166] by Fujii Hironori
  • 16 edits in trunk

WEBCORE_TESTSUPPORT_EXPORT should be used only for WebCoreTestSupport, not for WebCore
https://bugs.webkit.org/show_bug.cgi?id=203876

Reviewed by Ross Kirsling.

Source/WebCore:

WEBCORE_TESTSUPPORT_EXPORT shouldn't be used for WebCore. It is
only for WebCoreTestSupport module.

WebCoreTestSupport symbols don't need to export on Windows because
it is a static library on it. WEBCORE_TESTSUPPORT_EXPORT should be
empty.

No behavioral changes.

  • Modules/encryptedmedia/MediaKeyEncryptionScheme.idl:
  • Modules/encryptedmedia/MediaKeySessionType.idl:
  • Modules/encryptedmedia/MediaKeysRequirement.idl:
  • Modules/mediastream/NavigatorMediaDevices.h:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/TestNode.idl:
  • workers/service/context/ServiceWorkerThreadProxy.h:

Replaced wrongly marked WEBCORE_TESTSUPPORT_EXPORT with WEBCORE_EXPORT.

  • testing/js/WebCoreTestSupportPrefix.h: Define WEBCORE_TESTSUPPORT_EXPORT empty.
  • WebCorePrefix.h: Removed WEBCORE_TESTSUPPORT_EXPORT definition.

Source/WebKit:

  • config.h: Removed WEBCORE_TESTSUPPORT_EXPORT definition because it shouldn't be used in WebKit.

Tools:

  • TestWebKitAPI/win/TestWebKitAPIPrefix.h:
  • WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h:
  • WebKitTestRunner/WebKitTestRunnerPrefix.h:

Define WEBCORE_TESTSUPPORT_EXPORT emtpy.

6:04 PM Changeset in webkit [252165] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win] DumpRenderTree.exe and WebKitTestRunner.exe shouldn't link with WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=203879

Reviewed by Ross Kirsling.

After r252086, WinCairo DumpRenderTree.exe and
WebKitTestRunner.exe can't start because they are linked with
WinCairoRequirements DLLs unexpectedly.

DumpRenderTree.exe and WebKitTestRunner.exe are just wrapper
programs. They shouldn't link with WinCairoRequirements libs.

  • DumpRenderTree/PlatformWin.cmake: Set DumpRenderTree_LIBRARIES only shlwapi.
  • WebKitTestRunner/PlatformWin.cmake: Set WebKitTestRunner_LIBRARIES only shlwapi.
5:55 PM Changeset in webkit [252164] by aakash_jain@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: r252121 introduced new webgl/ failures
https://bugs.webkit.org/show_bug.cgi?id=203908

Unreviewed test gardening to quell the bots.

Patch by Justin Fan <Justin Fan> on 2019-11-06

5:48 PM Changeset in webkit [252163] by Kate Cheney
  • 2 edits in trunk/Tools

Update entry in contributors.json to fix commit privileges.

  • Scripts/webkitpy/common/config/contributors.json:
5:22 PM Changeset in webkit [252162] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

[WebAssembly] BBQPlan should retain Wasm::CodeBlock when compiling a single function
https://bugs.webkit.org/show_bug.cgi?id=203924

Reviewed by Filip Pizlo.

  • wasm/WasmBBQPlan.h:
4:39 PM Changeset in webkit [252161] by Simon Fraser
  • 17 edits
    2 adds in trunk

Box-shadow spread radius does not transition or animate correctly with CSS Transitions & Animations
https://bugs.webkit.org/show_bug.cgi?id=202489

Reviewed by Zalan Bujtas.
Source/WebCore:

Fix box-shadow offset and spread to support subpixel values, and make the rendering subpixel-aware.
This also makes animation of shadow spread and offset be smoother on Retina displays.

Also make ShadowStyle an enum class.

Test: fast/box-shadow/hidpi-box-shadow.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeLength const):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::shadowForBlending):

  • platform/animation/AnimationUtilities.h:

(WebCore::blend):

  • platform/graphics/RoundedRect.h:
  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
(WebCore::areaCastingShadowInHole):
(WebCore::RenderBoxModelObject::paintBoxShadow):
Move the snapping until after we've adjusted rects for offset and spread. The "extraOffset"
computation makes the snapping a little more complex; we have to snap before and after applying
shadowOffset, and give to GraphicsContext the delta between the snapped values.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintBoxDecorations):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintBoxDecorations):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setTextShadow):
(WebCore::RenderStyle::getShadowExtent const):
(WebCore::RenderStyle::getShadowInsetExtent const):
(WebCore::RenderStyle::getShadowHorizontalExtent const):
(WebCore::RenderStyle::getShadowVerticalExtent const):

  • rendering/style/ShadowData.cpp:

(WebCore::ShadowData::ShadowData):
(WebCore::calculateShadowExtent):
(WebCore::ShadowData::adjustRectForShadow const):

  • rendering/style/ShadowData.h:

(WebCore::ShadowData::ShadowData):
(WebCore::ShadowData::x const):
(WebCore::ShadowData::y const):
(WebCore::ShadowData::location const):
(WebCore::ShadowData::paintingExtent const):
(WebCore::ShadowData::spread const):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):

LayoutTests:

  • fast/box-shadow/hidpi-box-shadow-expected.html: Added.
  • fast/box-shadow/hidpi-box-shadow.html: Added.
4:29 PM Changeset in webkit [252160] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should fire its watchpoint as the last step.
https://bugs.webkit.org/show_bug.cgi?id=203867
<rdar://problem/56813514>

Reviewed by Saam Barati.

JSTests:

  • stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js: Added.

Source/JavaScriptCore:

JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should make all
the array structures SlowPut before firing the watchpoint. Otherwise, the
concurrent JIT may think it's grabbing the slow put version of the structure, but
is actually grabbing the non-SlowPut version because it happened to beat the
mutator in a race to read the structure before the mutator makes it SlowPut.

Also removed some assertions in DFGSpeculativeJIT.cpp that are vulnerable to races
between when the mutator makes all array structures SlowPut and when it fires the
HavingABadTime watchpoint. The FTL equivalent did not have these assertions.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):

4:12 PM Changeset in webkit [252159] by Alan Coon
  • 8 edits in tags/Safari-609.1.10/Source/WebKit

Cherry-pick r252155. rdar://problem/56957850

Unreviewed, rolling out r251907.

Causes white flashing in some cases <rdar://problem/56957850>

Reverted changeset:

"Take down the gesture snapshot early when the back/forward
cache is not leveraged"
https://bugs.webkit.org/show_bug.cgi?id=203713
https://trac.webkit.org/changeset/251907

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

4:00 PM Changeset in webkit [252158] by commit-queue@webkit.org
  • 5 edits in trunk

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

"it introduced test262 failures" (Requested by rkirsling on
#webkit).

Reverted changeset:

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

3:57 PM Changeset in webkit [252157] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, roll-out r251268 due to RAMification regression
https://bugs.webkit.org/show_bug.cgi?id=203121

The code was the bug, but it would be possible that this bug accidentally makes our policy better.
We should clean up to make this bug's behavior default. And we should look for a bit larger interval here.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::threadRunLoop):

3:56 PM Changeset in webkit [252156] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Screen locks while watching previously-muted-then-unmuted video
https://bugs.webkit.org/show_bug.cgi?id=203906
<rdar://problem/55821375>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-unmuted-after-play-holds-sleep-assertion.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):

LayoutTests:

  • media/video-unmuted-after-play-holds-sleep-assertion-expected.txt: Added.
  • media/video-unmuted-after-play-holds-sleep-assertion.html: Added.
3:53 PM Changeset in webkit [252155] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Unreviewed, rolling out r251907.

Causes white flashing in some cases <rdar://problem/56957850>

Reverted changeset:

"Take down the gesture snapshot early when the back/forward
cache is not leveraged"
https://bugs.webkit.org/show_bug.cgi?id=203713
https://trac.webkit.org/changeset/251907

3:36 PM Changeset in webkit [252154] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.0.2

Tag Safari-608.4.9.0.2.

3:03 PM Changeset in webkit [252153] by dbates@webkit.org
  • 22 edits
    3 deletes in trunk/LayoutTests

Update SameSite tests for new semantics for empty and invalid SameSite attribute
https://bugs.webkit.org/show_bug.cgi?id=203755
<rdar://problem/50816282>

Reviewed by Brent Fulgham.

Update the tests and test expectations following CFNetwork change <rdar://problem/42290578> as we
now only recognize SameSite=Strict and SameSite=Lax. That is, we no longer treat SameSite= or
SameSite=<some garbage value> as SameSite=Strict.

MacOS Mojave does not have the fix for <rdar://problem/42290578> and so we land expected failure results.

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
  • http/tests/cookies/same-site/popup-cross-site-post.html:
  • http/tests/cookies/same-site/popup-cross-site.html:
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html:
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-post-expected.txt:
  • platform/mac-mojave/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt:
  • platform/mac/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
2:42 PM Changeset in webkit [252152] by Keith Rollin
  • 9 edits in trunk/Tools

Unreviewed build fix: fix TestWebKitAPI in macCatalyst, tvOS, and
watchOS builds by conditionalizing some code on HAVE_UIWEBVIEW and
HAVE_PDFKIT. Follow-up to r251976.

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/JSLockTakesWebThreadLock.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollToRevealSelection.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/SnapshotViaRenderInContext.mm:
  • TestWebKitAPI/Tests/ios/SetTimeoutFunction.mm:
  • TestWebKitAPI/config.h:
2:38 PM Changeset in webkit [252151] by Oriol Brufau
  • 2 edits in trunk/Source/WebCore

Keep None value at the end of the ListStyleType enum
https://bugs.webkit.org/show_bug.cgi?id=203883

Reviewed by Manuel Rego Casasnovas.

Bug 203837 added a String value at the end of the ListStyleType enum.
This patch moves it before None, in order to keep None at the end.

  • rendering/style/RenderStyleConstants.h:
2:21 PM Changeset in webkit [252150] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

All EWS status-bubbles shows #1 on security patches when patch is uploaded with webkit-patch --no-review
https://bugs.webkit.org/show_bug.cgi?id=203903

Reviewed by David Kilzer.

  • BuildSlaveSupport/ews-app/ews/fetcher.py:

(BugzillaPatchFetcher.fetch):

2:21 PM Changeset in webkit [252149] by Truitt Savell
  • 14 edits
    20 copies
    21 adds in trunk/LayoutTests

Unreviewed, rolling out r252138.

Caused 8 http/tests/cookies/same-site/ to fail

Reverted changeset:

"Update SameSite tests for new semantics for empty and invalid
SameSite attribute"
https://bugs.webkit.org/show_bug.cgi?id=203755
https://trac.webkit.org/changeset/252138

2:17 PM Changeset in webkit [252148] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Increase timeout for svn-apply
https://bugs.webkit.org/show_bug.cgi?id=203909

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:
1:49 PM Changeset in webkit [252147] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Layout tests in media/modern-media-controls/pip-placard are designed for MacOS only
https://bugs.webkit.org/show_bug.cgi?id=203859

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-06
Reviewed by Eric Carlson.

  • platform/ios/TestExpectations:
1:45 PM Changeset in webkit [252146] by timothy@apple.com
  • 2 edits in trunk/LayoutTests

[ Mac Debug WK1 ] REGRESSION (r251262?): fast/scrolling/latching/scroll-select-bottom-test.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=203176
rdar://problem/56425901

Unreviewed test gardening.

This hasn't been flaky since r251565 when a related r251261 regression/bug was fixed.
I was also able to run it locally against r252065 a total of 1,100 times with no failures.

  • platform/mac-wk1/TestExpectations: Removed scroll-select-bottom-test.html.
1:18 PM Changeset in webkit [252145] by Andres Gonzalez
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Adding status field to my contributors.json entry.

1:06 PM Changeset in webkit [252144] by Alan Coon
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

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

[LFC][MarginCollapsing] Add Line::isConsideredEmpty
https://bugs.webkit.org/show_bug.cgi?id=203800
<rdar://problem/56854192>

Reviewed by Antti Koivisto.

https://www.w3.org/TR/CSS22/visuren.html#inline-formatting
Line boxes that contain no text, no preserved white space, no inline elements with non-zero margins, padding, or borders,
and no other in-flow content (such as images, inline blocks or inline tables), and do not end with a preserved newline
must be treated as zero-height line boxes for the purposes of determining the positions of any elements inside of them,
and must be treated as not existing for any other purpose.

Note that it does not necessarily mean visually non-empty line
<span style="font-size: 0px">this is still considered non-empty</span>

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendReplacedInlineBox):
(WebCore::Layout::Line::appendLineBreak):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::isConsideredEmpty const):
(WebCore::Layout::LineBox::setIsConsideredNonEmpty):

12:42 PM Changeset in webkit [252142] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] IOSurfaceSurfaceCGL has format and internalFormat flipped
https://bugs.webkit.org/show_bug.cgi?id=203911
<rdar://problem/56954291>

Reviewed by Simon Fraser.

Fix a typo where internalFormat and format are used in the
wrong order. The table of formats also had them backwards.

  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:

(rx::IOSurfaceSurfaceCGL::bindTexImage):

12:14 PM Changeset in webkit [252141] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Make sure we never end up with NetworkDataTaskCocoa TaskIdentifier conflicts
https://bugs.webkit.org/show_bug.cgi?id=203902

Reviewed by Antti Koivisto.

Consolidate the all the code related to data task registration / lookup / unregistration
in NetworkSessionCocoa and add a utility method (dataTaskMap()) to decide which data
task map to use. This makes it less error-prone and unlikely that someone would update
part of the code and fail to update the rest accordingly.

I also converted the debug assertions into release ones so that we crash in case of
id confusion instead of having a very bad and hard to diagnose bug like Bug 201822.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::dataTaskForIdentifier):
(WebKit::NetworkSessionCocoa::registerDataTask):
(WebKit::NetworkSessionCocoa::unregisterDataTask):

9:37 AM Changeset in webkit [252140] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

REGRESSION [ PHP ][ iOS ]: Two http/tests/cookies/same-site/set-first-party-* Tests are Failing
https://bugs.webkit.org/show_bug.cgi?id=203567
<rdar://problem/56708500>

Reviewed by Youenn Fablet.

A callable must be passed by string in PHP. Any other way seems to be non-standard and your
mileage may vary.

  • http/tests/cookies/resources/cookie-utilities.php:
  • http/tests/cookies/resources/cookie-utility.php:
  • platform/ios-wk2/TestExpectations:
9:36 AM Changeset in webkit [252139] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html is a Flakey Failure
https://bugs.webkit.org/show_bug.cgi?id=198924
<rdar://problem/51811010>

Reviewed by Brent Fulgham.

JavaScript alert() cannot be called from a Web Worker. Use postMessage() instead to post "PASS"
to the worker's owner document. The tests don't actually make use of this posted message, but
fixing the code to use postMessage() may come in handy for future tests.

  • http/tests/security/contentSecurityPolicy/resources/worker.php:
  • http/tests/security/contentSecurityPolicy/worker-script-src.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
9:34 AM Changeset in webkit [252138] by dbates@webkit.org
  • 14 edits
    4 deletes in trunk/LayoutTests

Update SameSite tests for new semantics for empty and invalid SameSite attribute
https://bugs.webkit.org/show_bug.cgi?id=203755
<rdar://problem/50816282>

Reviewed by Brent Fulgham.

Update the tests and test expectations following CFNetwork change <rdar://problem/42290578> as we
now only recognize SameSite=Strict and SameSite=Lax. That is, we no longer treat SameSite= or
SameSite=<some garbage value> as SameSite=Strict.

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
  • http/tests/cookies/same-site/popup-cross-site-post.html:
  • http/tests/cookies/same-site/popup-cross-site.html:
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php:
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html:
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/ios-12/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/ios/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/mac-mojave/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
  • platform/mac/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
9:30 AM WebKitGTK/AddingNewWebKit2API edited by yurys@chromium.org
Update links from Source/WebKit2/UIProcess to Source/WebKit/UIProcess (diff)
9:05 AM Changeset in webkit [252137] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add watchlist category for BuildSlaveSupport
https://bugs.webkit.org/show_bug.cgi?id=203900

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/watchlist:
5:16 AM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
5:13 AM Changeset in webkit [252136] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[Cairo] Cairo graphics backend uses ImageBuffer::copyImage just to access native image buffer handles
https://bugs.webkit.org/show_bug.cgi?id=203884

Patch by Chris Lord <clord@igalia.com> on 2019-11-06
Reviewed by Carlos Garcia Campos.

The Cairo graphics backend uses ImageBuffer::copyImage(DontCopyBackingStore) frequently just to access
the native image pointer. This makes several functions unusable off-main-thread, so add an accessor
function to avoid doing this.

No new tests -- no change in behavior.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::fillShadowBuffer):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::clipToImageBuffer):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::clipToImageBuffer):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::nativeImage const):

2:34 AM Changeset in webkit [252135] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] Add libfdk-aac-dev to the install-dependencies script
https://bugs.webkit.org/show_bug.cgi?id=203812

Patch by Philippe Normand <philn@igalia.com> on 2019-11-06
Reviewed by Carlos Garcia Campos.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
1:39 AM Changeset in webkit [252134] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r249428): [GStreamer] VP9 video rendered green
https://bugs.webkit.org/show_bug.cgi?id=201422
<rdar://problem/55945741>

Patch by Philippe Normand <philn@igalia.com> on 2019-11-06
Reviewed by Carlos Garcia Campos.

Enable the texture upload GStreamer meta code path. Until
GStreamer 1.16.2 this workaround is needed to fix VP9 (vp9dec)
rendering. For downstream users cherry-picking the corresponding
GStreamer patch[0], an environment variable can be set to bypass
the reintroduced slow color conversion: $WEBKIT_GST_NO_RGBA_CONVERSION.

[0] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/8d32de090554cf29fe359f83aa46000ba658a693

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):

1:27 AM Changeset in webkit [252133] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26.2

WebKitGTK 2.26.2

1:26 AM Changeset in webkit [252132] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.26.2 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.26.2.
1:26 AM Changeset in webkit [252131] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r251423 - [GTK] C++ comments used in C header files
https://bugs.webkit.org/show_bug.cgi?id=203191

Reviewed by Žan Doberšek.

  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/gtk/WebKitDefines.h:
  • UIProcess/API/gtk/WebKitForwardDeclarations.h:
  • UIProcess/API/gtk/WebKitWebViewBase.h:
  • UIProcess/API/wpe/WebKitAutocleanups.h:
  • UIProcess/API/wpe/WebKitDefines.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebEditor.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h:
1:26 AM Changeset in webkit [252130] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r251363 - [GTK] Objects category in emoji picker is empty
https://bugs.webkit.org/show_bug.cgi?id=203189

Reviewed by Adrian Perez de Castro.

There's a typo in the first emopi name of objects section.

  • UIProcess/API/gtk/WebKitEmojiChooser.cpp:

(webkitEmojiChooserSetupEmojiSections): uted speaker -> muted speaker

1:26 AM Changeset in webkit [252129] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.26/Source

Merge r251122 - [GTK] White pages in AC mode: Cannot get default EGL display: EGL_BAD_PARAMETER
https://bugs.webkit.org/show_bug.cgi?id=202362

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

The problem is that PlatformDisplayLibWPE::initialize() is failing to initialize the EGL display for some
reason. We need to understand why, but we should also handle the case of failing to initialize the EGL display
and simply disable accelerated compositing mode to avoid white pages and crashes in websites using WebGL. This
patch doesn't actually fix the bug, it just handles the EGL display initialization failure.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::~PlatformDisplay): Set s_sharedDisplayForCompositing to nullptr when the shared
display for compositing is destroyed.

  • platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:

(WebCore::PlatformDisplayLibWPE::initialize): Return false when EGL display initialization fails.

  • platform/graphics/libwpe/PlatformDisplayLibWPE.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences): Disable accelerated compositing mode when we failed
to reate the shared display for compositing.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Destroy the wpe display when initialization fails.

1:26 AM Changeset in webkit [252128] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r250707 - [GTK] WebAutomation: make setWindowRect synchronous
https://bugs.webkit.org/show_bug.cgi?id=202530

Reviewed by Carlos Alberto Lopez Perez.

Move/resize window is asynchronous in GTK, but automation expects it to be synchronous so that get window rect
after setting it always returns the value set. Use a nested run loop to wait for the configure events after the
move/resize.

  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::windowConfigureEventCallback):
(UIClient::setWindowFrameTimerFired):

12:28 AM Changeset in webkit [252127] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

There is no need to clean the content type header of a request if it is null
https://bugs.webkit.org/show_bug.cgi?id=203853

Reviewed by Geoffrey Garen.

No change of behavior.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::cleanHTTPRequestHeadersForAccessControl):
Stop early if content type is null so that we do not log an error that is not a real error.

12:06 AM Changeset in webkit [252126] by Carlos Garcia Campos
  • 18 edits
    8 adds in trunk

[GTK] Implement support for Pointer Lock API
https://bugs.webkit.org/show_bug.cgi?id=202956

Reviewed by Carlos Alberto Lopez Perez.

.:

Enable Pointer Lock for GTK port.

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit:

Add platform specific implementation of Pointer Lock for the GTK port.

  • PlatformGTK.cmake: Generate code for pointer-constraints and relative-pointer Wayland protocols.
  • Shared/NativeWebMouseEvent.h: Add optional mouse movement delta.
  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Pass movement delta to WebEventFactory::createWebMouseEvent().

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebMouseEvent): Initialize deltaX and deltaY for motion events using the received delta.

  • Shared/gtk/WebEventFactory.h: Add optional mouse movement delta.
  • SourcesGTK.txt: Add new files to compilation.
  • UIProcess/API/glib/WebKitUIClient.cpp: Add implementation for requestPointerLock and didLosePointerLock.
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRequestPointerLock): Call webkitWebViewBaseRequestPointerLock().
(webkitWebViewDidLosePointerLock): Call webkitWebViewBaseDidLosePointerLock().

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDispose): Unlock the pointer and release the PointerLockManager.
(webkitWebViewBaseHandleMouseEvent): Initialize the mouse movement delta for motion events and save the current event.
(webkitWebViewBaseMotionNotifyEvent): Let PointerLockManager handle motion events while pointer is locked.
(webkitWebViewBaseRequestPointerLock): Create a PointerLockManager and request it to lock the pointer.
(webkitWebViewBaseDidLosePointerLock): Request PointerLockManager to unlock the pointer.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/gtk/PointerLockManager.cpp: Added.

(WebKit::PointerLockManager::create):
(WebKit::PointerLockManager::PointerLockManager):
(WebKit::PointerLockManager::~PointerLockManager):
(WebKit::PointerLockManager::lock):
(WebKit::PointerLockManager::unlock):
(WebKit::PointerLockManager::handleMotion):

  • UIProcess/gtk/PointerLockManager.h: Added.

(WebKit::PointerLockManager::didReceiveMotionEvent):

  • UIProcess/gtk/PointerLockManagerWayland.cpp: Added.

(WebKit::PointerLockManagerWayland::PointerLockManagerWayland):
(WebKit::PointerLockManagerWayland::~PointerLockManagerWayland):
(WebKit::PointerLockManagerWayland::lock):
(WebKit::PointerLockManagerWayland::unlock):

  • UIProcess/gtk/PointerLockManagerWayland.h: Added.
  • UIProcess/gtk/PointerLockManagerX11.cpp: Added.

(WebKit::PointerLockManagerX11::PointerLockManagerX11):
(WebKit::PointerLockManagerX11::didReceiveMotionEvent):

  • UIProcess/gtk/PointerLockManagerX11.h: Added.

Tools:

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef): Handle escape key.

LayoutTests:

Unskip Pointer Lock tests and update expectations for tests still failing.

  • platform/gtk/TestExpectations:
  • platform/gtk/pointer-lock/mouse-event-delivery-expected.txt: Added.

Nov 5, 2019:

10:41 PM Changeset in webkit [252125] by Chris Dumez
  • 5 edits
    1 add in trunk

[iOS] Scroll position does not get restored when doing a history navigation while the reader view is shown
https://bugs.webkit.org/show_bug.cgi?id=203871
<rdar://problem/56564603>

Reviewed by Tim Horton.

Source/WebKit:

Previously, attempts to restore the scroll position on the web view while it is being dynamically resized
would get ignored. Instead, we now delay restoring the scroll position until after the view is resized.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/simple-tall.html:
  • TestWebKitAPI/Tests/WebKitCocoa/RestoreScrollPosition.mm: Added.

(TestWebKitAPI::TEST):

10:36 PM Changeset in webkit [252124] by mark.lam@apple.com
  • 10 edits in trunk/Source

WTF::RunLoop should not depend on isMainThread() idiom.
https://bugs.webkit.org/show_bug.cgi?id=203873
<rdar://problem/56524251>

Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::runLoopMode):

  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteTargetInitializeGlobalQueue):
(Inspector::RemoteConnectionToTarget::setupRunLoop):
(Inspector::RemoteConnectionToTarget::teardownRunLoop):

Source/WTF:

The isMainThread() idiom is only meaningful for WebCore. It is less meaningful
for JSC since a VM instance can be entered from multiple threads, as long as only
one thread enters it at any time. Hence, the concept of a main thread doesn't
make sense at the JSC level.

Since r251036, we started using a WTF::String to represent the RunLoop mode.
This caused problems for JSC clients when USE(CF) since it necessitated the use of
StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
the WTF::String.

To fix this problem, we should restore the original behavior of using CFStringRefs
as the RunLoop mode token.

  • wtf/RunLoop.h:

(WTF::RunLoop::cycle): Deleted.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::cycle):

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::cycle):

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::cycle):

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::cycle):

9:17 PM Changeset in webkit [252123] by Kate Cheney
  • 7 edits in trunk

Layout test website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=203706
Source/WebKit:

<rdar://problem/56801615>

Reviewed by Chris Dumez.

No new tests, this change is tested by the existing resourceLoadStatistics
tests.

This test started flaking when a new memory store was being created
between tests to maintain consistency. The call to grandfatherExistingWebsiteData
from populateMemoryStoreFromDisk in the persistent storage was
async, causing a race condition that led to occasional failures.
Adding a completion handler and changing the callsite of
populateMemoryStoreFromDisk should fix this problem.

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk):

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):

LayoutTests:

<rdar://problem/56801615>

Reviewed by Chris Dumez.

Since the state is reset between tests, the call to
setUseITPDatabase(false) is redundant.

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html:
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
7:56 PM Changeset in webkit [252122] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Integrate visualViewport's resize event with HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203842

Reviewed by Simon Fraser.

Source/WebCore:

Integrate the visual viewport API's resize event with HTML5 event loop
as intended in r251867.

Test: fast/events/resize-subframe-in-rendering-update.html

  • dom/DocumentEventQueue.cpp:

(WebCore::DocumentEventQueue::enqueueResizeEvent): Deleted.

  • dom/DocumentEventQueue.h:
  • page/VisualViewport.cpp:

(WebCore::VisualViewport::update):
(WebCore::VisualViewport::enqueueResizeEvent): Deleted.

LayoutTests:

Added a test to make sure resize event fires on visualViewport in the frame tree order.

  • fast/visual-viewport/visual-viewport-resize-subframe-in-rendering-update-expected.txt: Added.
  • fast/visual-viewport/visual-viewport-resize-subframe-in-rendering-update.html: Added.
7:01 PM Changeset in webkit [252121] by Justin Fan
  • 1798 edits
    441 copies
    539 adds
    5 deletes in trunk/LayoutTests

[WebGL] Update WebGL 1 tests to prep for WebGL Conformance bot
https://bugs.webkit.org/show_bug.cgi?id=203763

Reviewed by Dean Jackson.

Remove the 1.0.2 suite and update 1.0.3 suite, which supercedes the former.

  • webgl/1.0.2: Removed.
  • webgl/1.0.3: Updated to latest Khronos version and expectations to match. Unskip all non-timeout/non-crashing tests.
6:38 PM Changeset in webkit [252120] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.1/Source

Versioning.

6:36 PM Changeset in webkit [252119] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.1

New tag.

6:02 PM Changeset in webkit [252118] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r251908.

This workaround is not needed after r252086.

Reverted changeset:

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

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::identifier const): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.h:
5:55 PM Changeset in webkit [252117] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

5:38 PM Changeset in webkit [252116] by wilander@apple.com
  • 5 edits in trunk

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

Reviewed by Chris Dumez.

Source/WebKit:

Existing tests skipped.

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

  • NetworkProcess/cache/NetworkCacheStorage.h:

Bumps the version to force a clean cache.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

Skips setting needsIsolatedSession.

LayoutTests:

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

  • platform/wk2/TestExpectations:

Skipped the associated tests.

5:30 PM Changeset in webkit [252115] by Tadeu Zagallo
  • 9 edits in trunk/Source/JavaScriptCore

[WebAssembly] Allow tiering up from LLInt to BBQ
https://bugs.webkit.org/show_bug.cgi?id=203793

Reviewed by Yusuke Suzuki.

Even though the interpreter was overall neutral on throughput, it's still a regression in pathological
cases where massive functions spend too long in the LLInt while compiling the function with OMG. This
patch makes it so that the LLInt can tier up to BBQ from the prologue, while still tiering up to OMG from
from loops. This is a huge speed up on the tsf-wasm subtest of JS2:

# BBQ -> OMG
Startup: 100.680
Runtime: 1.852
Score: 13.654

# LLInt -> OMG
Startup: 378.205
Runtime: 1.291
Score: 22.082

# LLInt -> BBQ -> OMG
Startup: 405.983
Runtime: 2.311
Score: 30.623

  • runtime/Options.cpp:

(JSC::overrideDefaults):

  • runtime/OptionsList.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::BBQPlan):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):

  • wasm/WasmEntryPlan.cpp:

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

  • wasm/WasmEntryPlan.h:
  • wasm/WasmLLIntTierUpCounter.h:

(JSC::Wasm::LLIntTierUpCounter::optimizeAfterWarmUp):
(JSC::Wasm::LLIntTierUpCounter::optimizeSoon):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

4:36 PM Changeset in webkit [252114] by Alan Coon
  • 2 edits in tags/Safari-609.1.10/Source/WebCore

Cherry-pick r252079. rdar://problem/56917649

REGRESSION (r251930): Flaky WK1 crash in printing/pseudo-class-outside-page.html
https://bugs.webkit.org/show_bug.cgi?id=203855

Reviewed by Simon Fraser.

Exit early when executing media queries removes FrameView.

  • page/Frame.cpp: (WebCore::Frame::setPrinting):

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

4:36 PM Changeset in webkit [252113] by Alan Coon
  • 2 edits in tags/Safari-609.1.10/Source/WebCore

Cherry-pick r252013. rdar://problem/56832747

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

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

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

  • page/Page.cpp: (WebCore::Page::forEachDocument):

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

4:13 PM Changeset in webkit [252112] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.0.1

Tag Safari-608.4.9.0.1.

4:11 PM Changeset in webkit [252111] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.1.1

Tag Safari-608.4.9.1.1.

4:09 PM Changeset in webkit [252110] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.3.1

Tag Safari-608.4.9.3.1.

4:08 PM Changeset in webkit [252109] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.4.1

Tag Safari-608.4.9.4.1.

4:01 PM Changeset in webkit [252108] by Alan Coon
  • 11 edits in branches/safari-608.4.9.4-branch

Revert r252029. rdar://problem/56864381

4:01 PM Changeset in webkit [252107] by Alan Coon
  • 3 edits
    2 deletes in branches/safari-608.4.9.4-branch

Revert r252039. rdar://problem/56887511

4:01 PM Changeset in webkit [252106] by Alan Coon
  • 5 edits in branches/safari-608.4.9.4-branch/Source

Revert r252040. rdar://problem/56887517

4:01 PM Changeset in webkit [252105] by Alan Coon
  • 5 edits in branches/safari-608.4.9.4-branch

Revert r252054. rdar://problem/56903274

3:57 PM Changeset in webkit [252104] by Alan Coon
  • 7 edits in branches/safari-608.4.9.4-branch/Source

Versioning.

3:42 PM Changeset in webkit [252103] by Adrian Perez de Castro
  • 22 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r250488 - Crash when removing the target element while animating its attributes
https://bugs.webkit.org/show_bug.cgi?id=202247

Reviewed by Darin Adler.

Source/WebCore:

If SMIL is animating a CSS attribute, there is a chance the animation is
ended while it is being started or progressed. For that reason, the member
SVGAnimateElementBase::m_animator has to be made RefPtr and it has to be
be protected in resetAnimatedType() and calculateAnimatedValue().

While SMILTimeContainer::updateAnimations() is calling progress() for the
scheduled animation elements, SMILTimeContainer::unschedule() might get
called if processing an animation causes events to be dispatched. For that
reason we need to copy the scheduled animations Vector before processing
them so we avoid changing the Vector while looping through its items.

Remove the guard SMILTimeContainer::m_preventScheduledAnimationsChanges
which was added in r129670 for debugging purposes. In some situations,
the scheduled animations map could be modified out from under some of the
functions of SMILTimeContainer.

Test: svg/animations/animate-and-remove-target-element.html

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::resetAnimatedType):
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):

  • svg/SVGAnimateElementBase.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::createAnimator):

  • svg/SVGElement.h:
  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::schedule):
(WebCore::SMILTimeContainer::unschedule):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::sortByPriority):
(WebCore::SMILTimeContainer::processAnimations):
(WebCore::SMILTimeContainer::processScheduledAnimations):
(WebCore::SMILTimeContainer::updateAnimations):
(WebCore::SMILTimeContainer::~SMILTimeContainer): Deleted.

  • svg/animation/SMILTimeContainer.h:
  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::calculateNextProgressTime const):

  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAnimator.h:
  • svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
  • svg/properties/SVGAttributeAnimator.h:
  • svg/properties/SVGMemberAccessor.h:

(WebCore::SVGMemberAccessor::createAnimator const):

  • svg/properties/SVGPrimitivePropertyAnimator.h:

(WebCore::SVGPrimitivePropertyAnimator::create):

  • svg/properties/SVGPropertyAnimatorFactory.h:

(WebCore::SVGPropertyAnimatorFactory::createAnimator):

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

LayoutTests:

  • svg/animations/animate-and-remove-target-element-expected.txt: Added.
  • svg/animations/animate-and-remove-target-element.html: Added.
3:41 PM Changeset in webkit [252102] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r249911 - JSObject::putInlineSlow should not ignore "proto" for Proxy
https://bugs.webkit.org/show_bug.cgi?id=200386
<rdar://problem/53854946>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-proto-in-prototype-chain.js: Added.
  • stress/proxy-property-replace-structure-transition.js: Added.

Source/JavaScriptCore:

We used to ignore 'proto' in putInlineSlow when the object in question
was Proxy. There is no reason for this, and it goes against the spec. So
I've removed that condition. This also has the effect that it fixes an
assertion firing inside our inline caching code which dictates that for a
property replace that the base value's structure must be equal to the
structure when we grabbed the structure prior to the put operation.
The old code caused a weird edge case where we broke this invariant.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

3:35 PM Changeset in webkit [252101] by Alan Coon
  • 1 copy in branches/safari-608.4.9.4-branch

New branch.

3:29 PM Changeset in webkit [252100] by Alan Coon
  • 11 edits in branches/safari-608.4.9.3-branch

Revert r252029. rdar://problem/56864381

3:29 PM Changeset in webkit [252099] by Alan Coon
  • 3 edits
    2 deletes in branches/safari-608.4.9.3-branch

Revert r252039. rdar://problem/56887511

3:29 PM Changeset in webkit [252098] by Alan Coon
  • 5 edits in branches/safari-608.4.9.3-branch/Source

Revert r252040. rdar://problem/56887517

3:29 PM Changeset in webkit [252097] by Alan Coon
  • 5 edits in branches/safari-608.4.9.3-branch

Revert r252054. rdar://problem/56903274

3:25 PM Changeset in webkit [252096] by Alan Coon
  • 7 edits in branches/safari-608.4.9.3-branch/Source

Versioning.

3:19 PM Changeset in webkit [252095] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r251771 - ImageDecoders: use a thread safe data buffer for Cairo backing store
https://bugs.webkit.org/show_bug.cgi?id=201727
<rdar://problem/56665041>

Reviewed by Fujii Hironori.

Use SharedBuffer::dataSegment which is ThreadSafeRefCounted.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::setSize):
(WebCore::ImageBackingStore::ImageBackingStore):

  • platform/image-decoders/cairo/ImageBackingStoreCairo.cpp:

(WebCore::ImageBackingStore::image const):

3:18 PM Changeset in webkit [252094] by Adrian Perez de Castro
  • 13 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r251836 - [GTK][WPE] ImageDecoders: use SharedBuffer::DataSegment instead of SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=202807

Reviewed by Adrian Perez de Castro.

Because SharedBuffer::DataSegment is ThreadSafeRefCounted.

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::setData):
(WebCore::BMPImageDecoder::decodeHelper):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/bmp/BMPImageReader.h:

(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::setData):
(WebCore::BMPImageReader::readUint16 const):
(WebCore::BMPImageReader::readUint32 const):

  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::decode):

  • platform/image-decoders/gif/GIFImageReader.h:

(GIFImageReader::setData):

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::setData):
(WebCore::ICOImageDecoder::decodeAtIndex):

  • platform/image-decoders/ico/ICOImageDecoder.h:
  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageReader::decode):

  • platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:

(WebCore::JPEG2000ImageDecoder::decode):

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

(WebCore::PNGImageReader::decode):

  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::decode):

3:18 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
3:18 PM Changeset in webkit [252093] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r252044 - [FreeType] Too slow running encoding/legacy-mb-korean/euc-kr WPT tests
https://bugs.webkit.org/show_bug.cgi?id=203544

Reviewed by Carlos Alberto Lopez Perez.

Use a cache for system fallbacks to keep the fonts sorted by font description. When a system fallback is needed
again for the same font description, but different characters, we just iterate the cached font set comparing the
charsets to get the best one. This avoids using FcFontMatch and FcFontSort is only called once per font description.

  • platform/graphics/FontCache.h:
  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::CachedFontSet::CachedFontSet):
(WebCore::CachedFontSet::bestForCharacters):
(WebCore::FallbackFontDescriptionKey::FallbackFontDescriptionKey):
(WebCore::FallbackFontDescriptionKey::operator== const):
(WebCore::FallbackFontDescriptionKey::operator!= const):
(WebCore::FallbackFontDescriptionKey::isHashTableDeletedValue const):
(WebCore::FallbackFontDescriptionKey::computeHash const):
(WebCore::FallbackFontDescriptionKeyHash::hash):
(WebCore::FallbackFontDescriptionKeyHash::equal):
(WebCore::systemFallbackCache):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::platformPurgeInactiveFontData):

3:09 PM Changeset in webkit [252092] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

[GTK][WPE] Don't use prgname in dbus-proxy socket path
https://bugs.webkit.org/show_bug.cgi?id=201979

The path length for the socket is limited to 108 bytes so it is easy for a long
prgname to cause it to get truncated and fail. Since we only allow the socket
path into the sandbox the unique directory isn't necessary.

Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::setAddress):

3:09 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
3:08 PM Changeset in webkit [252091] by Alan Coon
  • 1 copy in branches/safari-608.4.9.3-branch

New branch.

3:08 PM Changeset in webkit [252090] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/ThirdParty/ANGLE

Merge r250298 - [GTK] ANGLE's eglplatform.h is build broken with -DENABLE_X11_PLATFORM=OFF
https://bugs.webkit.org/show_bug.cgi?id=198621

Reviewed by Carlos Garcia Campos.

  • PlatformGTK.cmake: Define WL_EGL_PLATFORM to prefer Wayland type

definitions with ENABLE_WAYLAND_TARGET=ON and ENABLE_X11_TARGET=OFF
to avoid ANGLE's eglplatform.h from trying to include the X11 headers.

3:08 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
3:06 PM Changeset in webkit [252089] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r250717 - [GTK] Crash in WebChromeClient::createDisplayRefreshMonitor
https://bugs.webkit.org/show_bug.cgi?id=202551

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

The crash happens when the drawing area is destroyed due to a page close. The layer tree host is invalidated
causing a layer flush that ends up trying to create a display refresh monitor, which requires the drawing
area. We need to null-check the drawing area in WebChromeClient::createDisplayRefreshMonitor() but we should
also ensure that layer flush is not performed after layer tree host is destroyed.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createDisplayRefreshMonitor const): Null-check drawing area before using it.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::CompositingCoordinator): Receive a WebPage instead of a WebCore::Page and
create the root layer here.
(WebKit::CompositingCoordinator::~CompositingCoordinator): Do not purge backing stores again, invalidate should
always be called right before the object is destroyed.
(WebKit::CompositingCoordinator::flushPendingLayerChanges): Get WebCore::Page from WebPage.
(WebKit::CompositingCoordinator::timestamp const): Ditto.
(WebKit::CompositingCoordinator::syncDisplayState): Ditto.
(WebKit::CompositingCoordinator::notifyFlushRequired): Do not continue if m_rootLayer is nullptr.
(WebKit::CompositingCoordinator::deviceScaleFactor const): Get WebCore::Page from WebPage.
(WebKit::CompositingCoordinator::pageScaleFactor const): Ditto.
(WebKit::CompositingCoordinator::createGraphicsLayer): Call attachLayer() instead of duplicating the code.
(WebKit::CompositingCoordinator::setVisibleContentsRect): Get WebCore::Page from WebPage.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::discardPreviousLayerTreeHost): Do not call LayerTreeHost::invalidate()
that has been removed.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::LayerTreeHost): Construct the coordinator after the sceneIntegration.
(WebKit::LayerTreeHost::~LayerTreeHost): Invalidate everything here now. We don't really need invalidate()
method since LayerTreeHost is not refcounted and we always called invalidate right before deleting the object.
(WebKit::LayerTreeHost::layerFlushTimerFired): This can't happen on invalid state anymore.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
3:06 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
3:05 PM Changeset in webkit [252088] by Alan Coon
  • 7 edits in branches/safari-608.4.9.2-branch/Source

Versioning.

2:59 PM Changeset in webkit [252087] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION(r252031): layout tests fail to run in non apple ports after r252031 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203844

Rubber-stamped by Aakash Jain.

Remove infinite loop for Windows.

  • Scripts/webkitpy/port/win.py:

(WinPort._path_to_default_image_diff):
(WinPort._path_to_image_diff): Deleted.

2:57 PM Changeset in webkit [252086] by Fujii Hironori
  • 5 edits in trunk

.:
[Win][CMake] Build WebCore as an OBJECT library for WinCairo port
https://bugs.webkit.org/show_bug.cgi?id=203663

Reviewed by Ross Kirsling.

WebCore is using declspec(dllexport) to export symbols, but it
is built as a static library rather than a DLL. If any symbols in
an object file aren't referenced from WebKit.dll, they won't be
included in WebKit.dll.

This issue can be solved either by using OBJECT library for
WebCore or using /WHOLEARCHIVE:WebCore.lib for WebKit.

This change takes OBJECT library approach becuase it doesn't
generate unnecessary static libs (WebCore.lib) and it's already
used for non-unified source builds for the library size issue (Bug
196866 Comment 4).

However, AppleWin can't use it because the Apple internal builds
need to generate the static libs and OBJECT library doesn't work
well with makesafeseh.obj.

  • Source/cmake/OptionsWin.cmake: Removed code overriding library types.
  • Source/cmake/OptionsWinCairo.cmake: Use OBJECT library types for WebCore and WebCoreTestSupport.

Source/WebCore:
[Win][CMake] Build WebCore as an OBJECT library unless Apple internal builds
https://bugs.webkit.org/show_bug.cgi?id=203663

Reviewed by Ross Kirsling.

No behavioral changes.

  • CMakeLists.txt: Changed WebCoreTestSupport not to link with

WebCore for Windows. Because WebKit.dll exports WebCore symbols,
they will be duplicated with WebCore.

2:53 PM Changeset in webkit [252085] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r250901 - REGRESSION(r246399): [GStreamer] Problems playing AAC streams
https://bugs.webkit.org/show_bug.cgi?id=202204

Reviewed by Xabier Rodriguez-Calvar.

Push the EOS event in the WebKitWebSrc element when the internal
queue is empty only for non-live resources. In the live case the
queue might drain temporarily but that's OK because data would
still be queued in downstream elements.

No new tests, the EOS event was pushed too early because of this
regression but there's no way to differentiate it from an expected
event in a layout test.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate):

2:53 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
2:29 PM Changeset in webkit [252084] by Alan Coon
  • 1 copy in branches/safari-608.4.9.2-branch

New branch.

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

Eliminate mach lookup to cfprefsd on process startup
https://bugs.webkit.org/show_bug.cgi?id=202866

Reviewed by Geoffrey Garen.

Currently, the WebContent and Networking process is calling CFBundleGetValueForInfoDictionaryKey on startup
to get the entry point function name into the WebKit bundle. This causes a mach lookup to cfprefsd which
should be avoided. Instead, we can send the service name as part of the bootstrap message when the UI process
is starting the process, and have the new process read this value from the message on startup to determine
the name of the entry point. This is possibly also an improvement in launch time, since we avoid reading a
value from Info.plist.

  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist:
  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-iOS.plist:
  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.64.Info.plist:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:
2:08 PM Changeset in webkit [252082] by Alan Coon
  • 5 edits in branches/safari-608.4.9.0-branch/Source

Revert r252040. rdar://problem/56887517

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

[iOS] Add logging and telemetry to mach services believed to be unused
https://bugs.webkit.org/show_bug.cgi?id=203831

Reviewed by Geoffrey Garen.

The sandbox rules for mach services believed to be unused should have logging and telemetry added to confirm
whether the assumption is correct.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:03 PM Changeset in webkit [252080] by Alan Coon
  • 11 edits in branches/safari-608.4.9.1-branch

Revert r252029. rdar://problem/56864381

1:54 PM Changeset in webkit [252079] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r251930): Flaky WK1 crash in printing/pseudo-class-outside-page.html
https://bugs.webkit.org/show_bug.cgi?id=203855

Reviewed by Simon Fraser.

Exit early when executing media queries removes FrameView.

  • page/Frame.cpp:

(WebCore::Frame::setPrinting):

1:54 PM Changeset in webkit [252078] by Alan Coon
  • 7 edits in branches/safari-608.4.9.1-branch/Source

Versioning.

1:47 PM Changeset in webkit [252077] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Adding logging to diagnose crashes resulting from provisional document loader unexpectedly being nullptr
https://bugs.webkit.org/show_bug.cgi?id=203837

Reviewed by Geoffrey Garen.

Added various logging for DocumentLoader and FrameLoader to figure out why
FrameLoader::m_provisionalDocumentLoader can be nullptr in some cases.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::stopForBackForwardCache):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

1:41 PM Changeset in webkit [252076] by Oriol Brufau
  • 22 edits in trunk

[css-lists] Implement list-style-type: <string>
https://bugs.webkit.org/show_bug.cgi?id=167729

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Some tests pass now.

  • web-platform-tests/css/css-lists/parsing/list-style-type-computed-expected.txt:
  • web-platform-tests/css/css-lists/parsing/list-style-type-valid-expected.txt:

Source/WebCore:

This patch extends the syntax of the list-style-type property to accept
arbitrary string values in order to customize the marker contents.

When a string is specified for list-style-type, the patch sets it to a
special ListStyleType::String, and the string value is stored in an
extra field.

Tests: imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-001a.html

imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-001b.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-002.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-003.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-004.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-005a.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-005b.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-006.html
imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-007.html
imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-type-computed.html
imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-type-valid.html

Some tests fail because mixed-bidi is not supported in markers
(https://bugs.webkit.org/show_bug.cgi?id=202849).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSProperties.json:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isPartialKeywordPropertyID):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderListMarker.cpp:

(WebCore::effectiveListMarkerType):
(WebCore::listMarkerSuffix):
(WebCore::listMarkerText):
(WebCore::RenderListMarker::styleDidChange):
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::suffix const):
(WebCore::RenderListMarker::getRelativeMarkerRect):

  • rendering/style/CounterContent.h:

(WebCore::CounterContent::CounterContent):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::listStyleStringValue const):
(WebCore::RenderStyle::setListStyleStringValue):
(WebCore::RenderStyle::initialListStyleStringValue):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInheritListStyleType):
(WebCore::Style::BuilderCustom::applyInitialListStyleType):
(WebCore::Style::BuilderCustom::applyValueListStyleType):

LayoutTests:

Most tests pass now, but some still fail because mixed-bidi is not
supported in markers (https://bugs.webkit.org/show_bug.cgi?id=202849).

iOS and Mac have some extra failures due to subpixel differences for the
marker position.

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
1:36 PM Changeset in webkit [252075] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

EWS should report test failures from clean-tree to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=203829

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/loadConfig.py:

(loadBuilderConfig):

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests.init):
(RunWebKitTestsWithoutPatch.start):
(RunAPITestsWithoutPatch.start):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added and updated unit-tests.
1:24 PM Changeset in webkit [252074] by Alan Coon
  • 1 copy in branches/safari-608.4.9.1-branch

New branch.

1:24 PM Changeset in webkit [252073] by Alan Coon
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

12:57 PM Changeset in webkit [252072] by Alan Coon
  • 1 copy in branches/safari-608.4.9.0-branch

New branch.

12:56 PM Changeset in webkit [252071] by Alan Coon
  • 1 copy in tags/Safari-608.4.9

Tag Safari-608.4.9.

12:11 PM Changeset in webkit [252070] by Simon Fraser
  • 4 edits
    2 adds in trunk

Content can disappear with a combination of <video> with controls and clipping
https://bugs.webkit.org/show_bug.cgi?id=203834
Source/WebCore:

rdar://problem/56559648

Reviewed by Zalan Bujtas.

<video> with controls triggered a bug where a backing-sharing layer also claimed
that it didn't need any backing store. RenderLayerCompositor::requiresOwnBackingStore()
could early-return with 'false' if a layer had an indirect compositing reason of "Clipping",
while also backing-sharing. We need to check for backing-sharing first.

Test: compositing/shared-backing/clipping-and-shared-backing.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setBackingSharingLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

LayoutTests:

Reviewed by Zalan Bujtas.

  • compositing/shared-backing/clipping-and-shared-backing-expected.html: Added.
  • compositing/shared-backing/clipping-and-shared-backing.html: Added.
12:10 PM Changeset in webkit [252069] by commit-queue@webkit.org
  • 71 edits
    6 deletes in trunk

Disabled SVG shapes should not be hit
https://bugs.webkit.org/show_bug.cgi?id=200140

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

LayoutTests/imported/w3c:

  • web-platform-tests/svg/import/types-dom-08-f-manual.svg:

This is the expectation of FireFox as well.

  • web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt:

Source/WebCore:

The fill and the stroke rectangles should not be computed for disabled
SVG shapes.

The existing code may calculate the root's boundary: at(0, 0) size 0x0
while one of its children boundary is calculated at: (47,47) size 6x6.
See circle-01-expected.txt.

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::updateShapeFromElement):

  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::updateShapeFromElement):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::fillContains):
(WebCore::RenderSVGShape::strokeContains):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
  • svg/custom/getBBox-js-circle-zerodimension-expected.txt: Removed.
  • svg/custom/getBBox-js-circle-zerodimension.html: Removed.
  • svg/custom/getBBox-js-ellipse-zerodimension-expected.txt: Removed.
  • svg/custom/getBBox-js-ellipse-zerodimension.html: Removed.
  • svg/custom/getBBox-js-rect-zerodimension-expected.txt: Removed.
  • svg/custom/getBBox-js-rect-zerodimension.html: Removed.

These tests were added in r169522. They succeed in Safari and Chrome but
they fail in FireFox. The issue of calculating getBBox was discussed in:
https://lists.w3.org/Archives/Public/www-svg/2012Aug/0014.html. But no
resolution was reached.

11:53 AM Changeset in webkit [252068] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WTF

Add definitions of ANSI colors for colorful log output
https://bugs.webkit.org/show_bug.cgi?id=203805

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-05
Reviewed by Saam Barati.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/AnsiColors.h: Added.
  • wtf/CMakeLists.txt:
11:53 AM Changeset in webkit [252067] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Layout test http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=203841
<rdar://problem/51752151>

Reviewed by Brian Burg.

  • http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:

Rewrite the test so it actually waits for the resource response information to be received
in the frontend before testing any information about the resource, as the response is what
contains the status code and source. Previously, we would only wait for the inspected page
to finish loading, which did guarantee that the inspector frontend at least knew about the
resource being loaded, but not necessarily that it had been told about the response.

11:50 AM Changeset in webkit [252066] by dbates@webkit.org
  • 5 edits in trunk

[Cocoa] Right Command key should have location DOM_KEY_LOCATION_RIGHT instead of DOM_KEY_LOCATION_STANDARD
https://bugs.webkit.org/show_bug.cgi?id=202601
<rdar://problem/55992775>

Reviewed by Wenson Hsieh.

Source/WebCore:

On Cocoa platforms the right Command key is mapped to VK_APPS. Report VK_APPS as being on the
right side of the keyboard on these platforms.

  • dom/KeyboardEvent.cpp:

(WebCore::keyLocationCode):

LayoutTests:

Update test to emit the location property of the DOM key event to ensure that we do not
regress the value of this property.

  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:
11:36 AM Changeset in webkit [252065] by commit-queue@webkit.org
  • 6 edits
    1 move
    2 adds in trunk/Source

move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=203803

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-05
Reviewed by Saam Barati.

Source/WebKit:

No new tests added because functionality is not changing, code is only
moved from WebKit to WTF.

  • Platform/cocoa/WKCrashReporter.mm:

(WebKit::setCrashReportApplicationSpecificInformation):
(WebKit::setCrashLogMessage): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/cocoa/CrashReporter.cpp: Added.

(WTF::setCrashLogMessage):

  • wtf/cocoa/CrashReporter.h: Added.
  • wtf/spi/cocoa/CrashReporterClientSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/CrashReporterClientSPI.h.
11:15 AM Changeset in webkit [252064] by Chris Dumez
  • 12 edits in trunk

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

Reviewed by Geoffrey Garen.

Source/WebCore:

Let pages with active webdatabase transactions into the back/forward cache. We make sure
to queue tasks that run script to the Window event loop, so that they get delayed when
the document is suspended.

This patch also makes sure that the transaction's error callback gets called if the database
gets closed while the transaction is going on. We previously did not happen and it was causing
issues because databases get closed on navigation.

No new tests, updated existing test.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::runTransaction):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransaction::callErrorCallbackDueToInterruption):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverSuccessCallback):
(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):

  • Modules/webdatabase/SQLTransaction.h:

LayoutTests:

  • fast/history/page-cache-webdatabase-pending-transaction-expected.txt:
  • fast/history/page-cache-webdatabase-pending-transaction.html:

Update existing test to reflect behavior change.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:

Unmark test as flaky.

10:53 AM Changeset in webkit [252063] by Ross Kirsling
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Layers: enable tab by default
https://bugs.webkit.org/show_bug.cgi?id=203833

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/ContextMenuUtilities.js:
  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView.isTabAllowed):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

10:52 AM Changeset in webkit [252062] by wenson_hsieh@apple.com
  • 13 edits
    2 adds in trunk

Native text substitutions interfere with HTML <datalist> options resulting in crash
https://bugs.webkit.org/show_bug.cgi?id=203116
<rdar://problem/49875932>

Reviewed by Tim Horton.

Source/WebKit:

On macOS, an NSTableView inside a separate window is used to render suggestions when showing a datalist. The
crash happens when this table view is reloaded while clicking a datalist suggestion; that is, if -[NSTableView
reloadData] is invoked after the user sends a platform MouseDown event on the table view cell but before the
MouseUp is received, the selected row of the table view will be -1 when the action, -selectedRow:, is invoked.

In this particular case, the table view reload is triggered as a result of hiding the autocorrection bubble on
macOS, thereby committing the alternative text suggestion and changing the value of the text field via an
editing command.

To avoid crashing, we simply make -selectedRow: robust in the case where the index is invalid.

Test: fast/forms/datalist/datalist-click-crash.html

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsController selectedRow:]):

Tools:

Add a new testing hook to wait for datalist suggestions to show up and choose the suggestion at the given index.

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

(WTR::UIScriptControllerMac::activateDataListSuggestion):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::activateDataListSuggestion):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::activateDataListSuggestion):

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::isShowingDataListSuggestions const):
(WTR::UIScriptControllerMac::activateDataListSuggestion):

Dig through the view hierarchy of the NSWindow subclass used to show datalist suggestions for the table view
containing the suggestions; then, select the given row, and invoke the action on the target.

(WTR::UIScriptControllerMac::dataListSuggestionsTableView const):

LayoutTests:

Add a new layout test to exercise the crash.

  • fast/forms/datalist/datalist-click-crash-expected.txt: Added.
  • fast/forms/datalist/datalist-click-crash.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.activateDataListSuggestion):

10:39 AM Changeset in webkit [252061] by dbates@webkit.org
  • 2 edits in trunk/Tools

TestWebKitAPI.WebKit.DocumentEditingContext is failing on iPad
https://bugs.webkit.org/show_bug.cgi?id=203828
<rdar://problem/55854631>

Reviewed by Myles Maxfield.

Specify both a font size and line height when using Ahem as per [1]. Otherwise, text may be
rendered inconsistently. Plus, disable text-autosizing and fix viewport to make test result
consistent on both iPhone and iPad.

[1] <https://web-platform-tests.org/writing-tests/ahem.html>

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(applyStyle): Remove unused style for <iframe>s and fix up parameter name to conform to style guide.
(applyAhemStyle): Set -webkit-text-size-adjust to 100% to disable auto-sizing. Fix viewport width
and initial scale to ensure the result is the same on both iPhone and iPad. Also remove unused style
for <iframe>s and renamed parameter name to conform to style guide.
(TEST):

10:25 AM Changeset in webkit [252060] by sihui_liu@apple.com
  • 30 edits
    3 adds in trunk

REGRESSION (r250754): web page using IDBIndex doesn't load occasionally
https://bugs.webkit.org/show_bug.cgi?id=203431

Reviewed by Brady Eidson.

Source/WebCore:

We now allow page to enter cache even when there are active IDB objects. The open database connection or blocked
database request on suspended pages may stop other active pages from deleting or opening the same database.

To fix this issue, we close those open connections on suspended page when we know from the versionchange event,
that there is open/delete request blocked. For blocked requests on suspended page, we abort them and return
error. This way, when the suspended page resumes, it will get close event fired on previously opened database
connections, and error event fired on previously blocked requests.

API test: IndexedDB.IndexedDBInPageCache

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::requestBlocked):
(WebCore::IDBOpenDBRequest::setIsContextSuspended):

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::didFireVersionChangeEvent):
(WebCore::IDBClient::setMatchingItemsContextSuspended):
(WebCore::IDBClient::IDBConnectionProxy::setContextSuspended):

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

(WebCore::IDBClient::IDBConnectionToServer::didFireVersionChangeEvent):

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

(WebCore::IDBServer::IDBServer::didFireVersionChangeEvent):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::clearTransactionsOnConnection):
(WebCore::IDBServer::UniqueIDBDatabase::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didFireVersionChangeEvent):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • dom/Document.cpp:

(WebCore::Document::setBackForwardCacheState):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::suspend):
(WebCore::WorkerGlobalScope::resume):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::suspend):

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

Tools:

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

(-[IndexedDBInPageCacheMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBNotInPageCache.html: Added.
10:05 AM Changeset in webkit [252059] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

http/tests/media/track-in-band-hls-metadata.html sometimes crashes after r251626
https://bugs.webkit.org/show_bug.cgi?id=203849
<rdar://problem/56889717>

Reviewed by Youenn Fablet.

No new tests, fixes existing test.

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

(-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]): Return early if
m_player has been cleared.
(-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]):
Ditto.

9:25 AM Changeset in webkit [252058] by Jonathan Bedard
  • 4 edits in trunk/Tools

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

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/base.py:

(Port._path_to_image_diff): Use the host build directory.

  • Scripts/webkitpy/port/config.py:

(Config.build_directory): Allow the caller to ignore the port argument, which will return the default
build directory for the host running the script.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.make_port):

9:13 AM Changeset in webkit [252057] by aestes@apple.com
  • 4 edits
    4 adds in trunk

ApplePaySession should never prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203087
<rdar://problem/56744401>

Reviewed by Chris Dumez.

Source/WebCore:

Rather than prevent entering the back/forward cache when there is an active session, abort
the session on suspension and queue a task to the event loop that dispatches the cancel event.

Tests: http/tests/ssl/applepay/page-cache-active-apple-pay-session.html

http/tests/ssl/applepay/page-cache-inactive-apple-pay-session.html

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::canSuspendWithoutCanceling const):
(WebCore::ApplePaySession::suspend):
(WebCore::ApplePaySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/applepay/ApplePaySession.h:

LayoutTests:

  • http/tests/ssl/applepay/page-cache-active-apple-pay-session-expected.txt: Added.
  • http/tests/ssl/applepay/page-cache-active-apple-pay-session.html: Added.
  • http/tests/ssl/applepay/page-cache-inactive-apple-pay-session-expected.txt: Added.
  • http/tests/ssl/applepay/page-cache-inactive-apple-pay-session.html: Added.
8:58 AM Changeset in webkit [252056] by youenn@apple.com
  • 6 edits in trunk

MessagePort::close cannot assume that is execution context is not null
https://bugs.webkit.org/show_bug.cgi?id=203843
<rdar://problem/55599877>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::close):
Do not use m_scriptExecutionContext since it can be nulled out in MessagePort::disentangle.

  • dom/messageports/WorkerMessagePortChannelProvider.cpp:

(WebCore::WorkerMessagePortChannelProvider::messagePortClosed):

LayoutTests:

  • http/tests/workers/service/basic-messageport-expected.txt:
  • http/tests/workers/service/resources/basic-messageport.js:

(async.doLog):
(then):
(): Deleted.

8:52 AM Changeset in webkit [252055] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Enable powerPreference controlled GPU switching with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=203773

GPU switching can't be controlled from within ANGLE running in the content process
due to sandbox restrictions. So we need to continue using the existing
HighPerformanceGPUManager path with ANGLE.

Although the high power GPU is activated on request with this change, ANGLE does
not use it yet.

Patch by James Darpinian <jdarpinian@chromium.org> on 2019-11-05
Reviewed by Alex Christensen.

  • platform/graphics/GraphicsContext3D.cpp:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/GraphicsContext3DManager.cpp:

(WebCore::GraphicsContext3DManager::updateHighPerformanceState):
(WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

8:40 AM Changeset in webkit [252054] by Kocsen Chung
  • 5 edits in branches/safari-608-branch

Apply patch. rdar://problem/56903274

8:40 AM Changeset in webkit [252053] by Kocsen Chung
  • 5 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r248121. rdar://problem/56903580

Crash under WebProcessProxy::didBecomeUnresponsive()
https://bugs.webkit.org/show_bug.cgi?id=200346
<rdar://problem/53795984>

Reviewed by Geoffrey Garen.

Make sure the BackgroundProcessResponsivenessTimer / ResponsivenessTimer ref their client
while they call mayBecomeUnresponsive() / willChangeIsResponsive() / didChangeIsResponsive()
/ didBecomeUnresponsive() on their client, in case calling one of these ends up destroying
the client.

  • UIProcess/BackgroundProcessResponsivenessTimer.cpp: (WebKit::BackgroundProcessResponsivenessTimer::setResponsive):
  • UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::timerFired):
  • UIProcess/ResponsivenessTimer.h:
  • UIProcess/WebProcessProxy.h:

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

7:01 AM Changeset in webkit [252052] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] WebKit.NewFirstVisuallyNonEmptyLayout* unexpected pass
https://bugs.webkit.org/show_bug.cgi?id=203846

Patch by Chris Lord <clord@igalia.com> on 2019-11-05
Reviewed by Žan Doberšek.

  • TestWebKitAPI/glib/TestExpectations.json:
6:15 AM Changeset in webkit [252051] by eric.carlson@apple.com
  • 3 edits in trunk/LayoutTests

[iOS] Update fast/forms/ios/file-upload-panel.html test and results
https://bugs.webkit.org/show_bug.cgi?id=203823
<rdar://problem/56080440>

Reviewed by Youenn Fablet.

  • fast/forms/ios/file-upload-panel-expected.txt:
  • fast/forms/ios/file-upload-panel.html:
4:38 AM Changeset in webkit [252050] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

REGRESSION(r252031): layout tests fail to run in non apple ports after r252031
https://bugs.webkit.org/show_bug.cgi?id=203844

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

Since r252032 Port.check_image_diff() assumes that ImageDiff binary is built in the build path, which is not
true for all ports. This patch adds Port._path_to_default_image_diff() to be used instead of the build_path()
and overriden by ports not building the ImageDiff in the build path.

  • Scripts/webkitpy/port/base.py:

(Port.check_image_diff):
(Port._path_to_default_image_diff):
(Port._path_to_image_diff):

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._path_to_default_image_diff):

  • Scripts/webkitpy/port/win.py:

(WinPort._path_to_default_image_diff):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort._path_to_default_image_diff):

3:38 AM Changeset in webkit [252049] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] Geolocation API tests are consistently passing
https://bugs.webkit.org/show_bug.cgi?id=203845

Patch by Chris Lord <clord@igalia.com> on 2019-11-05
Reviewed by Žan Doberšek.

  • TestWebKitAPI/glib/TestExpectations.json:
2:10 AM Changeset in webkit [252048] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds
https://bugs.webkit.org/show_bug.cgi?id=203362
<rdar://problem/56648232>

  • UIProcess/UserMediaPermissionRequestProxy.h: Enclosed isUserGesturePriviledged with #if ENABLE(MEDIA_STREAM).
1:33 AM Changeset in webkit [252047] by youenn@apple.com
  • 21 edits in trunk

mp4 video element broken with service worker
https://bugs.webkit.org/show_bug.cgi?id=184447
<rdar://problem/39313155>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

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

Source/WebCore:

Update fetch header handling to properly handle range header as per https://fetch.spec.whatwg.org/#headers-class.
In particular, remove thre range header from a Request/Headers object whenever modified.
Add checks so that range responses are not reused for non range requests.
For that purpose, add a range-requested flag to ResourceResponse.
Ass helper routines implementing part of fetch spec.
Covered by enabled test.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::removePrivilegedNoCORSRequestHeaders):
(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::remove):
(WebCore::FetchHeaders::set):

  • Modules/fetch/FetchHeaders.h:

(WebCore::FetchHeaders::setInternalHeaders):

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::initializeWith):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • platform/network/HTTPParsers.cpp:

(WebCore::isNoCORSSafelistedRequestHeaderName):
(WebCore::isPriviledgedNoCORSRequestHeaderName):

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

(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::isRangeRequested const):
(WebCore::ResourceResponseBase::setAsRangeRequested):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):

Source/WebKit:

Make a response as range-requested as per https://fetch.spec.whatwg.org/#http-network-or-cache-fetch step 15.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

LayoutTests:

Enable test for WK2, not WK1.

1:14 AM Changeset in webkit [252046] by youenn@apple.com
  • 23 edits
    2 adds in trunk

Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
https://bugs.webkit.org/show_bug.cgi?id=203362
Source/WebCore:

Reviewed by Eric Carlson.

Compute whether a media request is user priviledged or not.
It is priviledged if it is created as part of a user gesture and no request of the same type
has been previously created for the same user gesture.
If getDisplayMedia is called twice as part of a single user gesture, getDisplaMedia will reject for the second call.

Remove the internal ability to disable user gesture check.
Instead use internals API to simulate a user gesture.

Test: fast/mediastream/getUserMedia-deny-persistency5.html and updated test.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::computeUserGesturePriviledge):
(WebCore::MediaDevices::getUserMedia):
(WebCore::MediaDevices::getDisplayMedia):
(WebCore::MediaDevices::getUserMedia const): Deleted.
(WebCore::MediaDevices::getDisplayMedia const): Deleted.

  • Modules/mediastream/MediaDevices.h:
  • platform/mediastream/MediaStreamRequest.h:

(WebCore::MediaStreamRequest::encode const):
(WebCore::MediaStreamRequest::decode):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaStreamSourceInterrupted):
(WebCore::Internals::setDisableGetDisplayMediaUserGestureConstraint): Deleted.

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

Source/WebKit:

Reviewed by Eric Carlson.

In case the request has user gesture priviledge, do not look at denied request history.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::isUserGesturePriviledged const):

Tools:

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:

(TestWebKitAPI::TEST_F):
Update test to take into account the ability to ask again for permission.

  • TestWebKitAPI/Tests/WebKit/getDisplayMedia.html:

Update to make sure we notify test if internals is not available.

LayoutTests:

<rdar://problem/56648232>

Reviewed by Eric Carlson.

  • fast/mediastream/constraint-intrinsic-size.html:
  • fast/mediastream/get-display-media-muted.html:
  • fast/mediastream/getUserMedia-deny-persistency5-expected.txt:
  • fast/mediastream/getUserMedia-deny-persistency5.html:
  • fast/mediastream/media-stream-page-muted.html:

Use user gesture simulation instead of disabling user gesture check.

  • fast/mediastream/screencapture-user-gesture.html:
  • fast/mediastream/screencapture-user-gesture-expected.txt:
  • http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
  • http/tests/media/media-stream/get-display-media-prompt.html:
  • http/tests/media/media-stream/resources/get-display-media-devices-iframe.html:
  • resources/testharnessreport.js:
1:10 AM Changeset in webkit [252045] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest webrtc/captureCanvas-webrtc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=181835

Unreviewed.

  • platform/mac-wk2/TestExpectations:

Test is no longer a flaky timeout.

12:17 AM Changeset in webkit [252044] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[FreeType] Too slow running encoding/legacy-mb-korean/euc-kr WPT tests
https://bugs.webkit.org/show_bug.cgi?id=203544

Reviewed by Carlos Alberto Lopez Perez.

Use a cache for system fallbacks to keep the fonts sorted by font description. When a system fallback is needed
again for the same font description, but different characters, we just iterate the cached font set comparing the
charsets to get the best one. This avoids using FcFontMatch and FcFontSort is only called once per font description.

  • platform/graphics/FontCache.h:
  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::CachedFontSet::CachedFontSet):
(WebCore::CachedFontSet::bestForCharacters):
(WebCore::FallbackFontDescriptionKey::FallbackFontDescriptionKey):
(WebCore::FallbackFontDescriptionKey::operator== const):
(WebCore::FallbackFontDescriptionKey::operator!= const):
(WebCore::FallbackFontDescriptionKey::isHashTableDeletedValue const):
(WebCore::FallbackFontDescriptionKey::computeHash const):
(WebCore::FallbackFontDescriptionKeyHash::hash):
(WebCore::FallbackFontDescriptionKeyHash::equal):
(WebCore::systemFallbackCache):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::platformPurgeInactiveFontData):

Nov 4, 2019:

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

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

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

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

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

Reviewed by Wenson Hsieh.

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

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

Reviewed by Wenson Hsieh.

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

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

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

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

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

Source/WebCore:

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

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

Source/WebKitLegacy/mac:

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

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

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

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

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

Reviewed by Simon Fraser.

Source/WebCore:

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

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

  • svg/properties/SVGAnimatedPropertyPairAccessor.h:

LayoutTests:

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

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

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

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

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

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

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

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

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

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

Reviewed by Ryosuke Niwa.

All users have been ported to the HTML5 event loop.

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

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

Reviewed by Brent Fulgham .

Source/WebKit:

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

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

Covered by new API tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

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

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

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

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

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

Reviewed by Simon Fraser.

Source/WebCore:

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

Updated existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

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

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

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

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:

LayoutTests:

Updated existing tests.

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

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

Reviewed by Youenn Fablet.

Source/WebCore:

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

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

  • Modules/encryptedmedia/MediaKeySession.cpp:

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

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

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

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:

LayoutTests:

Add layout test coverage.

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

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

Reviewed by Saam Barati.

Source/JavaScriptCore:

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

However, these ones have multiple problems.

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

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

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

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

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

(generate_section_for_global_private_code_name_macro):

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

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

  • bytecode/BytecodeDumper.cpp:

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

  • bytecode/BytecodeIntrinsicRegistry.cpp:

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

  • bytecode/BytecodeIntrinsicRegistry.h:

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

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

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

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

(WTF::printInternal):

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

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

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

  • bytecompiler/BytecodeGenerator.cpp:

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

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

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

  • dfg/DFGByteCodeParser.cpp:

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

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

(JSC::JIT::emit_op_jneq_ptr):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jneq_ptr):

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

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

  • parser/NodeConstructors.h:

(JSC::BytecodeIntrinsicNode::BytecodeIntrinsicNode):

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

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

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

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

  • runtime/JSGlobalObject.h:

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

  • runtime/JSGlobalObjectInlines.h:

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

LayoutTests:

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

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

Reviewed by Alexey Proskuryakov.

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

  • Scripts/webkitpy/port/base.py:

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

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

Unreviewed fix for non-unified build.

Source/JavaScriptCore:

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

Add missing includes.

Source/WebCore:

  • style/PropertyCascade.cpp:

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

  • style/PropertyCascade.h:

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

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

Add missing includes.

Source/WebKit:

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

Add missing includes.

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

Apply patch. rdar://problem/56864381

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

Unreviewed attempt to fix wincairo build after r252016.

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

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

Reviewed by Devin Rousso.

Mark more inspector tests as passing on GTK.

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

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

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

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

Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeElement.js:

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

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

Versioning.

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

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

Reviewed by Robin Morisset.

JSTests:

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

(foo):

Source/JavaScriptCore:

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

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

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

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

(JSC::clearArrayMemset):

  • runtime/ArrayPrototype.cpp:

(JSC::copyElements):

  • runtime/ButterflyInlines.h:

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

  • runtime/JSArray.cpp:

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

  • runtime/JSObject.cpp:

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

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

(JSC::createRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

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

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

Reviewed by Myles C. Maxfield.

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

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

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

will produce output like this when it fails:

Expected equality of these values:

CGRectMake(138, 0, 23, 24)

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

rects.firstObject.CGRectValue

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

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

Add source files.

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

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

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

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

3:48 PM Changeset in webkit [252022] by wenson_hsieh@apple.com
  • 4 edits in trunk/Source/WebCore

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

Reviewed by Zalan Bujtas.

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

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

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

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

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

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

  • page/ios/ContentChangeObserver.cpp:

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

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

(WebCore::EventHandler::mouseMoved):

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

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

Unreviewed, rolling out r252015.

Broke the Windows build

Reverted changeset:

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

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

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

Reviewed by Brent Fulgham.

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

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

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

Patch by Alexey Shvayka <shvaikalesh@gmail.com> on 2019-11-04
Reviewed by Saam Barati.

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

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

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

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

Tag Safari-608.4.8.

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

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

Reviewed by Jonathan Bedard.

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

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

Reviewed by Ryosuke Niwa.

  • css/FontFaceSet.cpp:

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

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

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

Reviewed by Keith Miller.

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

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

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

  • bytecode/ArithProfile.cpp:

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

  • bytecode/ArithProfile.h:

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

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

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::binaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::unaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addMathIC):

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

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

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):

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

(JSC::UnaryOpNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

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

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

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

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

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITMathIC.h:

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

  • jit/JITMulGenerator.cpp:

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

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

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

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

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

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

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

  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

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

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

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

Reviewed by Alex Christensen.

Source/WebCore:

New API test added.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::shared):

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

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::logSubresourceLoadingForTesting):

Test function to seed the web process' observer.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):

Now flushes the shared observer.

Source/WebKit:

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

New API test added.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):

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

  • UIProcess/API/Cocoa/WKProcessPool.mm:

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

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

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

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

Test infrastructure.

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

(WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting):

Test infrastructure.

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

(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):

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

(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):

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

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

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

Test infrastructure to seed the observer with test data.

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

(WebKit::WebProcess::setWebsiteDataStoreParameters):

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

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

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

(WebKit::WebProcess::setResourceLoadStatisticsEnabled):

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

(WebKit::WebProcess::flushResourceLoadStatistics):

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

(WebKit::WebProcess::seedResourceLoadStatisticsForTesting):

Test infrastructure to seed the shared observer with test data.

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

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

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

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

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

  • page/Page.cpp:

(WebCore::Page::forEachDocument):

1:49 PM Changeset in webkit [252012] by wenson_hsieh@apple.com
  • 4 edits
    2 adds in trunk/Tools

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

Reviewed by Tim Horton.

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

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

(forEachViewInHierarchy):

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

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

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

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

Reviewed by Alex Christensen.

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

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

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

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::updateProcessAssertion):

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

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

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

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

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

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

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isStandaloneServiceWorkerProcess const):

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

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

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

Reviewed by Darin Adler.

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

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

Source/JavaScriptCore:

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

Source/WebCore:

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

Source/WebKit:

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

Source/WTF:

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

Tools:

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

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

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

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

Reviewed by Manuel Rego Casasnovas.

Import WPT tests.

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

Unreviewed, rolling out r251993.

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

Reverted changeset:

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

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

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

Reviewed by Ryosuke Niwa.

  • animation/WebAnimation.cpp:

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

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

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

Reviewed by Saam Barati.

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::resetAtMachineFrame):

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

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

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

Reviewed by Brent Fulgham.

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

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

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

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

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

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

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

Reviewed by Eric Carlson.

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

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

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

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

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

Reviewed by Eric Carlson.

Source/WebCore:

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

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

  • Modules/mediarecorder/MediaRecorder.cpp:

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

  • Modules/mediarecorder/MediaRecorder.h:

LayoutTests:

Add layout test coverage.

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

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

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

Reviewed by Alex Christensen.

Source/WebCore:

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

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

Updated QuickLook API tests.

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

Tools:

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

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

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

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

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

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

Reviewed by Alex Christensen.

Source/WebCore:

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

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

Updated QuickLook API tests.

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

Tools:

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

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

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

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

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

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

Source/WebCore:

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

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

(WebCore::MacApplication::isEpsonSoftwareUpdater):

Source/WebKitLegacy/mac:

  • Misc/WebDownload.mm:

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

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

Unreviewed WinCairo build fix for r251934.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

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

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

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

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

Unreviewed, fix test failure after r251959

Reviewed by NOBODY (OOPS!).

  • inspector/timeline/timeline-recording.html:

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

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

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

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

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

  • TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:

(TEST):

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

updated email in contributors.json to match bugzilla.

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

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

Unreviewed Test Gardening.

Mark the test as flaky.

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

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

Reviewed by Youenn Fablet.

Source/WebCore:

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

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

  • Modules/encryptedmedia/MediaKeySession.cpp:

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

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

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

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:

LayoutTests:

Add layout test coverage.

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

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

Reviewed by Youenn Fablet.

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

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

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

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

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

Reviewed by Alex Christensen.

Source/WebCore:

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

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

Updated QuickLook API tests.

  • platform/PreviewConverter.cpp:

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

  • platform/PreviewConverter.h:

Tools:

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

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

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

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

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

Patch by Peng Liu <peng.liu6@apple.com> on 2019-11-04
Reviewed by Jonathan Bedard.

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

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

(PlatformInfo.init):

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

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

Reviewed by Eric Carlson.

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

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::~LibWebRTCRtpSenderBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:

Fixed Variant Move issue.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::hasObserver const):

  • platform/mediastream/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::~RealtimeOutgoingAudioSource):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::~RealtimeOutgoingVideoSource):

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

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

Reviewed by Jer Noble.

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

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

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

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

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

Unreviewed.

  • platform/wk2/TestExpectations:

Test is no longer flaky.

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

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

Unreviewed.

  • platform/wk2/TestExpectations:

Test is no longer a flaky failure.

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

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

Reviewed by Chris Dumez.

Source/WebCore:

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

  • workers/service/ServiceWorker.cpp:

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

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

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

LayoutTests:

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

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

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import WPT tests.

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

LayoutTests:

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

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

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

Reviewed by Alex Christensen.

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

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

Reviewed by Geoffrey Garen.

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

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

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

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

Reviewed by Eric Carlson.

To align with upstream repository.

  • Configurations/yasm.xcconfig:
  • Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
  • libwebrtc.xcodeproj/project.pbxproj:
Note: See TracTimeline for information about the timeline view.