Timeline
May 11, 2020:
- 10:52 PM Changeset in webkit [261547] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=211771
Unreviewed gardening.
Update test expectations of latest flaky failures in the GTK bot,
create new tests if necessary and remove passing tests.
- platform/gtk/TestExpectations:
- 10:46 PM Changeset in webkit [261546] by
-
- 21 edits in trunk/Source
Fix problems caught by replacing WTF::Optional with std::optional
https://bugs.webkit.org/show_bug.cgi?id=211703
Reviewed by Chris Dumez.
Source/JavaScriptCore:
- runtime/MachineContext.h:
(JSC::MachineContext::instructionPointer): Use explcit makeOptional here,
to work around the fact that MacroAssemblerCodePtr uses an unusual technique
to disable conversions to everything except bool.
Source/WebCore:
- editing/EditorCommand.cpp:
(WebCore::executeSelectToMark): Remove erroneous code that converts
a live range to a SimpleRange and then back again.
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::willSendRequest): Pass a pointer to
a ResourceRequest.
(WebCore::InspectorNetworkAgent::didLoadResourceFromMemoryCache): Ditto.
(WebCore::InspectorNetworkAgent::buildInitiatorObject): Take a const*
to a ResourceRequest instead of an Optional<const ResourceRequest&>
because std::optional does not work with reference types.
- inspector/agents/InspectorNetworkAgent.h: Update for the change above.
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::Iterator::operator++): Fix code that was accidentally
comparing two optionals, after already checking them for null. Instead
we should compare their values.
- platform/PlatformScreen.cpp:
(WebCore::screenData): Return a const* instead of an Optional<const&>
because std::optonal does not work with reference types.
- platform/PlatformScreen.h: Updated for the above. Also removed both
the unneeded include of Optional.h (could have included Forward.h) and
of HashMap.h and put the Mac-specific type IORegistryGPUID inside a
PLATFORM(MAC) #if statement.
- platform/ScreenProperties.h: Moved the HashMap.h include here, since
this is the header that uses it. Changed the EncodedColorSpaceDataType
enum to an enum class and gave it much shorter names.
(WebCore::ScreenData::encode const): Updated for the enum class change.
Also fixed a mistake where the code would use operator<< instead of
encodeEnum for the color space type of Null. This would lead to some
kind of decoding error, rather than a null cgColorSpace.
(WebCore::ScreenData::decode): Ditto.
- platform/ios/PlatformScreenIOS.mm:
(WebCore::screenIsMonochrome): Updated since screenData returns a pointer.
(WebCore::screenHasInvertedColors): Ditto.
(WebCore::screenSupportsExtendedColor): Ditto.
(WebCore::screenSize): Ditto.
(WebCore::availableScreenSize): Ditto.
- platform/mac/PlatformScreenMac.mm: Moved declaration of
CGDisplayUsesForceToGray to CoreGraphicsSPI.h. Removed unused declaration
of CGDisplayUsesInvertedPolarity.
(WebCore::primaryOpenGLDisplayMask): Updated since screendData returns a pointer.
(WebCore::displayMaskForDisplay): Ditto.
(WebCore::gpuIDForDisplay): Ditto.
(WebCore::screenProperties): Ditto. Also renamed from getScreenProperties to
adhere to WebKit coding style.
(WebCore::screenIsMonochrome): Ditto.
(WebCore::screenHasInvertedColors): Ditto.
(WebCore::screenDepth): Ditto.
(WebCore::screenDepthPerComponent): Ditto.
(WebCore::screenRectForDisplay): Ditto.
(WebCore::screenRect): Ditto.
(WebCore::screenAvailableRect): Ditto.
(WebCore::screenColorSpace): Ditto.
(WebCore::screenSupportsExtendedColor): Ditto.
(WebCore::screenSupportsHighDynamicRange): Ditto.
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::queueTaskToFireInstallEvent):
Removed capture of unused jobDataIdentifier.
Source/WebCore/PAL:
- pal/spi/cg/CoreGraphicsSPI.h: Moved definition of CGDisplayUsesForceToGray
here from PlatformScreenMac.mm and also added include of the private header
it's from when compiling with the Apple internal SDK for the additional
checking that we get from using both.
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::plainTextForContext): Clarified ambiguous overload resolution by writing
the conversion from a live range to a SimpleRange out explicitly. Also fixed a typo
where there was a missing "&" in a "const&" argument.
Source/WTF:
- wtf/URLHelpers.cpp:
(WTF::URLHelpers::mapHostName): Make URLDecodeFunction a function
pointer and use nullptr instead of trying to use Optional<> with
a function reference.
(WTF::URLHelpers::collectRangesThatNeedMapping): Ditto.
(WTF::URLHelpers::applyHostNameFunctionToMailToURLString): Ditto.
(WTF::URLHelpers::applyHostNameFunctionToURLString): Ditto.
(WTF::URLHelpers::mapHostNames): Ditto.
(WTF::URLHelpers::userVisibleURL): Ditto.
- wtf/URLHelpers.h: Ditto.
- wtf/cocoa/NSURLExtras.mm:
(WTF::decodeHostName): Pass nullptr for URLDecodeFunction.
- 10:21 PM Changeset in webkit [261545] by
-
- 3 edits in trunk/Source/WTF
AtomString::init should temporarily disable checks via
isMainThreaddue to WebThread's inconsistent state
https://bugs.webkit.org/show_bug.cgi?id=211754
Reviewed by Dean Jackson.
When starting WebThread via StartWebThread function, we have special period between the prologue of StartWebThread and spawning WebThread actually.
In this period,isMainThread()returns false even if this is called on the main thread since WebThread is now enabled and we are not taking a WebThread lock.
This causes assertion hits in MainThreadLazyNeverDestroyed initialization only in WebThread platforms.
This patch takes conservative approach to fix this assertion hits: just bypass these assertions since this should not be fired. We bypass assertions by using
constructWithoutAccessCheck, which intentionally skipsisMainThread()check for construction. In non WebThread environment, we do not lose the assertion
coverage since we already have ASSERT(isUIThread()). And ASSERT(isUIThread()) ensures that this is called in system main thread in WebThread platforms.
Unfortunately, we have no mechanism to test this effectively. WK1 LayoutTests runner cannot show assertions since WK1 runners already initialize necessary
things somewhere before calling AtomString::init() in StartWebThread. This is the same in TestWebKitAPI. For now, I manually tested that assertion does not fire.
- wtf/NeverDestroyed.h:
(WTF::LazyNeverDestroyed::construct):
(WTF::LazyNeverDestroyed::constructWithoutAccessCheck):
(WTF::LazyNeverDestroyed::storagePointerWithoutAccessCheck const):
(WTF::LazyNeverDestroyed::storagePointer const):
- wtf/text/AtomString.cpp:
(WTF::AtomString::init):
- 8:52 PM Changeset in webkit [261544] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix build errors after r260992
https://bugs.webkit.org/show_bug.cgi?id=211756
Reviewed by Darin Adler.
Add JSC namespace specifier to NonIntrinsic and PropertyAttribute
in the macros in JSObject.h since those can be used outside of
or without introducing JSC namespace.
- runtime/JSObject.h:
- 8:06 PM Changeset in webkit [261543] by
-
- 4 edits in trunk/Source
[bmalloc][WTF] Add computing memory size implementation for FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=211749
Reviewed by David Kilzer.
Source/bmalloc:
- bmalloc/AvailableMemory.cpp:
(bmalloc::computeAvailableMemory):
Source/WTF:
Share sysinfo(3) implementation with Linux and FreeBSD.
- wtf/RAMSize.cpp:
(WTF::computeRAMSize):
- 8:04 PM Changeset in webkit [261542] by
-
- 68 edits in trunk/Source/JavaScriptCore
[clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final
https://bugs.webkit.org/show_bug.cgi?id=211743
Reviewed by Saam Barati.
- API/JSScriptRef.cpp:
- b3/B3ArgumentRegValue.h:
- b3/B3AtomicValue.h:
- b3/B3CCallValue.h:
- b3/B3CheckSpecial.h:
- b3/B3CheckValue.h:
- b3/B3Const32Value.h:
- b3/B3Const64Value.h:
- b3/B3ConstDoubleValue.h:
- b3/B3ConstFloatValue.h:
- b3/B3DataSection.h:
- b3/B3ExtractValue.h:
- b3/B3FenceValue.h:
- b3/B3MemoryValue.h:
- b3/B3PatchpointSpecial.h:
- b3/B3PatchpointValue.h:
- b3/B3SlotBaseValue.h:
- b3/B3StackmapSpecial.h:
- b3/B3StackmapValue.h:
- b3/B3SwitchValue.h:
- b3/B3UpsilonValue.h:
- b3/B3VariableValue.h:
- b3/B3WasmAddressValue.h:
- b3/B3WasmBoundsCheckValue.h:
- b3/air/AirCCallSpecial.h:
- b3/air/AirPrintSpecial.h:
- bytecode/BytecodeDumper.h:
- bytecode/GetterSetterAccessCase.h:
- bytecode/InstanceOfAccessCase.h:
- bytecode/IntrinsicGetterAccessCase.h:
- bytecode/ModuleNamespaceAccessCase.h:
- bytecode/ProxyableAccessCase.h:
- bytecode/Watchpoint.h:
- dfg/DFGFailedFinalizer.h:
- dfg/DFGGraph.h:
- dfg/DFGJITCode.h:
- dfg/DFGJITFinalizer.h:
- dfg/DFGToFTLDeferredCompilationCallback.h:
- dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h:
- ftl/FTLForOSREntryJITCode.h:
- ftl/FTLJITCode.h:
- ftl/FTLJITFinalizer.h:
- heap/CompleteSubspace.h:
- heap/FastMallocAlignedMemoryAllocator.h:
- heap/GigacageAlignedMemoryAllocator.h:
- heap/HeapSnapshotBuilder.h:
- heap/IsoAlignedMemoryAllocator.h:
- heap/IsoSubspace.h:
- heap/IsoSubspacePerVM.cpp:
- heap/IsoSubspacePerVM.h:
- heap/MarkStackMergingConstraint.h:
- heap/SimpleMarkingConstraint.h:
- heap/SpaceTimeMutatorScheduler.h:
- heap/StochasticSpaceTimeMutatorScheduler.h:
- heap/SynchronousStopTheWorldMutatorScheduler.h:
- jit/GCAwareJITStubRoutine.h:
- jit/JITCode.h:
- jit/JITThunks.h:
- jit/JITToDFGDeferredCompilationCallback.h:
- jit/PolymorphicCallStubRoutine.h:
- jsc.cpp:
- parser/Lexer.cpp: Address warning.
- runtime/JSDestructibleObjectHeapCellType.h:
- runtime/SimpleTypedArrayController.h:
- runtime/Structure.h:
- runtime/WeakGCMap.h:
- wasm/WasmEntryPlan.h:
- 7:52 PM Changeset in webkit [261541] by
-
- 5 edits in trunk
WebGLLayer clobbers TEXTURE_2D binding on iOS
https://bugs.webkit.org/show_bug.cgi?id=211758
Patch by James Darpinian <James Darpinian> on 2020-05-11
Reviewed by Dean Jackson.
Source/WebCore:
WebGLLayer was accidentally clobbering the TEXTURE_2D binding on iOS because IOSurfaces
are bound to TEXTURE_2D instead of TEXTURE_RECTANGLE. This fixes a bunch of iOS-specific
WebGL conformance failures including:
texture-bindings-unaffected-on-resize.html
default-texture.html
tex-image-and-sub-image-2d-with-canvas-rgb565.html and friends
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer display]):
(-[WebGLLayer bindFramebufferToNextAvailableSurface]):
LayoutTests:
We now have passing results for:
fast/canvas/webgl/webgl-texture-binding-preserved.html
webgl/1.0.3/conformance/canvas/texture-bindings-unaffected-on-resize.html
webgl/1.0.3/conformance/extensions/oes-element-index-uint.html
webgl/1.0.3/conformance/misc/delayed-drawing.html
webgl/1.0.3/conformance/state/state-uneffected-after-compositing.html
webgl/1.0.3/conformance/textures/default-texture.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgb565.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba4444.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba5551.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-webgl-canvas-rgb565.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-webgl-canvas-rgba4444.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-webgl-canvas-rgba5551.html
webgl/1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-webgl-canvas.html
- platform/ios/TestExpectations:
- 7:39 PM Changeset in webkit [261540] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, remove failures happening on EWS GTK-WK2
https://bugs.webkit.org/show_bug.cgi?id=211761
Unreviewed gardening.
Since the GTK test bot and the EWS GTK-WK2 bot were moved to Flatpak,
these failures that were happening on EWS GTK-WK2 are no happening
anymore.
- platform/gtk/TestExpectations:
- 7:10 PM Changeset in webkit [261539] by
-
- 19 edits in trunk
[ macOS ] scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211747
Reviewed by Tim Horton.
Source/WebCore:
Add an option to monitorWheelEvents to reset latching.
- page/Page.cpp:
(WebCore::Page::startMonitoringWheelEvents):
- page/Page.h:
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::startMonitoringWheelEvents):
- page/scrolling/mac/ScrollingCoordinatorMac.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::startMonitoringWheelEvents):
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::monitorWheelEvents):
- testing/js/WebCoreTestSupport.h:
Source/WebKit:
Add an option to monitorWheelEvents to reset latching.
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageStartMonitoringScrollOperations):
- WebProcess/InjectedBundle/API/c/WKBundlePage.h:
Tools:
Add an option to monitorWheelEvents to reset latching.
- DumpRenderTree/mac/EventSendingController.mm:
(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):
(-[EventSendingController monitorWheelEventsWithOptions:]):
(-[EventSendingController monitorWheelEvents]): Deleted.
- WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
- WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::toMonitorWheelEventsOptions): We have to return a pointer to a static, because the generated code
doesn't use smart pointers.
(WTR::EventSendingController::monitorWheelEvents):
- WebKitTestRunner/InjectedBundle/EventSendingController.h:
(WTR::MonitorWheelEventsOptions::MonitorWheelEventsOptions):
LayoutTests:
Change the test to use monitorWheelEvents() for each phase.
- scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html:
- 7:10 PM Changeset in webkit [261538] by
-
- 11 edits2 adds in trunk/Source
Introduce WTF::Config and put Signal.cpp's init-once globals in it.
https://bugs.webkit.org/show_bug.cgi?id=211729
<rdar://problem/62938878>
Reviewed by Keith Miller and Saam Barati.
Source/JavaScriptCore:
- Initialize VMTraps' signals early now that we'll be freezing signals at the end of the first VM initialization.
- Move the !initializeThreadingHasBeenCalled RELEASE_ASSERT in initializeThreading() to the bottom of the function. This way, we'll also catch bugs which may cause us to jump into the middle of the function.
Added a compilerFence there to ensure that the RELEASE_ASSERT is only executed
after all initialization is done. This guarantees that it will only be executed
at the end.
- Call WTF::Config::permanentlyFreeze() from JSC::Config::permanentlyFreeze() for obvious reasons: freezing one should freeze the other.
- runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
- runtime/JSCConfig.cpp:
(JSC::Config::permanentlyFreeze):
- runtime/VMTraps.cpp:
(JSC::VMTraps::initializeSignals):
- runtime/VMTraps.h:
Source/WTF:
- Added WTF::Config for storing globals that effectively serve as constants i.e we'll be initializing them before or during the first VM instantiation, but should not have any reason to modify them later. The WTF::Config will be frozen (along with JSC::Config) at the end of instantiating the first VM instance.
- Added a Config::AssertNotFrozenScope RAII object to ensure that initialization operations that should only be called at initialization time, will not be called once the Config has been frozen.
- Moved most of Signal.cpp's globals into WTF::Config. The only globals (or statics) not moved are ones that cannot be moved because they require a non-trivial default constructor (once_flag), or need to be modifiable at runtime (e.g. Lock).
Instead of freezing the once_flag, we sanity check the call_once block with
the Config::AssertNotFrozenScope.
- SignalHandler records are now allocated from arrays of SignalHandlerMemory in the WTF::Config. The number of signal handlers we will ever install is always finite. Hence, there's no reason to use a dynamic data structure like the LocklessBag to hold it.
We introduce a SignalHandlers struct to manage these arrays (and all the other
Signal.cpp globals that we want to move to the WTF::Config). Amongst other
things, SignalHandlers provides the abstractions for:
- allocating memory for the SignalHandler instances. See SignalHandlers::alloc().
- iterating SignalHandler instances. See SignalHandlers::forEachHandler().
To maintain the synchronization properties of the LocklessBag,
SignalHandlers::alloc() uses a mutex. In practice, this mutex will never be
contended on because all signal handlers are now installed at initialization
time before any concurrency comes into play.
- We now initialize activeThreads() eagerly via initializeThreading. In production configurations, this does not matter because signal handler installations will always trigger its initialization. However, in debugging configurations, we may end up disabling the use of all signal handlers. As a result, we need to do this eager initialization to ensure that it is done before we freeze the WTF::Config.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Threading.cpp:
(WTF::initializeThreading):
- wtf/WTFConfig.cpp: Added.
(WTF::Config::disableFreezingForTesting):
(WTF::Config::permanentlyFreeze):
- wtf/WTFConfig.h: Added.
(WTF::Config::configureForTesting):
(WTF::Config::AssertNotFrozenScope::~AssertNotFrozenScope):
- wtf/threads/Signals.cpp:
(WTF::SignalHandlers::alloc):
(WTF::SignalHandlers::forEachHandler const):
(WTF::startMachExceptionHandlerThread):
(WTF::handleSignalsWithMach):
(WTF::setExceptionPorts):
(WTF::activeThreads):
(WTF::installSignalHandler):
(WTF::jscSignalHandler):
(WTF::SignalHandlers::initialize):
- wtf/threads/Signals.h:
- 6:58 PM Changeset in webkit [261537] by
-
- 2 edits in trunk/Source/WTF
[WTF] CStringBuffer::createUninitialized() should use Checked<size_t>
<https://webkit.org/b/211746>
<rdar://problem/62729848>
Reviewed by Darin Adler.
- wtf/text/CString.cpp:
(WTF::CStringBuffer::createUninitialized):
- Switch from RELEASE_ASSERT() to Checked<size_t>() for overflow check. RELEASE_ASSERT() was using the wrong type, too.
- 6:28 PM Changeset in webkit [261536] by
-
- 3 edits in trunk/Source/WebCore
Fixes for crashes in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211740
Reviewed by Chris Fleizach.
Fixes for several LayoutTests in isolated tree mode.
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper characterOffsetForTextMarker:]):
(-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
- 6:05 PM Changeset in webkit [261535] by
-
- 2 edits in trunk/Source/WebCore
Scrollbars flicker in RTL scrollable regions
https://bugs.webkit.org/show_bug.cgi?id=211757
Reviewed by Tim Horton.
Scrollbars deal in scroll offsets (zero-based), not scroll positions (scroll-origin based) so
the scrolling thread needs to update scrollbar painters using offsets.
Not testable because this is a transient state that gets fixed by the main thread.
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters):
- 5:38 PM Changeset in webkit [261534] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Remove OTHER_CFLAGS="" in libwebrtc pbxproj
https://bugs.webkit.org/show_bug.cgi?id=211742
Reviewed by Darin Adler.
I believe this was done by accident in a larger patch. If we did indeed
want to define OTHER_CFLAGS to be empty, the right place for that is inside
the xcconfig files, not the pbxproj files.
- libwebrtc.xcodeproj/project.pbxproj:
- 5:38 PM Changeset in webkit [261533] by
-
- 17 edits3 adds in trunk
Improve accuracy of IndexedDB estimated write size computation
https://bugs.webkit.org/show_bug.cgi?id=211360
Reviewed by Brady Eidson.
Source/WebCore:
We currently estimate the size of a put in IndexedDB for quota check purposes with something
like:
estimatedWriteSize = (1 + numIndices) * (keySize + valueSize)
However, this can lead to large overestimates of write sizes. This is because secondary
indices only store a mapping of secondary index key => primary key; they do not store the
entire value. In the example site attached to 202137 (another DB quota-related bug), the
the heuristic estimates that one of the put operations would use more than 800 MB when it
actually uses 220 MB. This inaccuracy leads to spurious disk quota permission modals being
presented in Safari.
This patch improves the write size computation by generating the secondary index keys before
estimating the write size. The performance should be about the same since we save the
generated index keys for later usage when we actually add the record to the DB.
- Headers.cmake:
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::MemoryIDBBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::serializationContext):
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
- Modules/indexeddb/server/MemoryObjectStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::serializationContext):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::estimateSize):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
- Modules/indexeddb/shared/IndexKey.h:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::generateIndexKeyMapForValue):
- bindings/js/IDBBindingUtilities.h:
LayoutTests:
Added a layout test to check that the size estimate associated with adding an object to a
store with many indices is reasonable.
- platform/mac-wk1/TestExpectations: Skip test on Mac WK1 since it doesn't implement quota checks.
- platform/win/TestExpectations: Skip test on Windows since it doesn't implement quota checks.
- storage/indexeddb/resources/storage-limit-with-indices.js: Added.
- storage/indexeddb/storage-limit-with-indices-expected.txt: Added.
- storage/indexeddb/storage-limit-with-indices.html: Added.
- 5:34 PM Changeset in webkit [261532] by
-
- 7 edits2 adds in branches/safari-609-branch
Apply patch. rdar://problem/62978903
- 5:30 PM Changeset in webkit [261531] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Apply patch. rdar://problem/62978118
- 5:22 PM Changeset in webkit [261530] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r260979. rdar://problem/62978869
REGRESSION: Double tap dispatches one click event on iOS 13.4 when it would dispatch two on iOS 13.3
https://bugs.webkit.org/show_bug.cgi?id=211179
<rdar://problem/62594779>
Reviewed by Tim Horton.
Source/WebKit:
https://trac.webkit.org/r253267 introduced deferring gesture recognizers as a way to handle preventable (non-
passive) touchstart events without blocking the UI process. These deferring gesture recognizers work by having
other gesture recognizers at or below WKWebView (with few exceptions) require the failure of these deferring
gestures. These gestures transition to possible state when beginning a touch inside a non-passive touch event
handling region, and transition to either failed or ended state (depending on whetherpreventDefault()was
called) after the web content process finished handling the touch event.
However, this means that the resulting dependency graph now has an edge between each gesture under WKWebView and
one of the deferring gesture recognizers, due to these new failure requirements. Since gestures that have been
recognized or have failed don't get reset until all other gestures in the same dependency subgraph have also
recognized or failed, some gestures (such as the synthetic single tap gesture recognizer in this bug) might not
be resetting as soon after ending as they did before, since they may be connected to other gesture recognizers
that are still in possible state by way of the failure requirements added by the new deferring gestures.
I was already aware of this problem in r253267, and attempted to solve this by bisecting the gesture dependency
graph into two subgraphs: one containing all the one-finger multi-tap gestures that are reset after a lengthy
delay, and another containing everything else. To do this, I added two different deferring gesture recognizers:
one for immediately resettable gestures (meant for gestures in the latter subgraph), and another for gestures
that are reset after a delay (meant for gestures in the former subgraph).
Unfortunately, unrelated changes around text interactions in UIKit in iOS 13.4 caused the tap-and-a-half
gesture for selecting a range of text to now have a delayed reset; this means that gestures in the "immediately
resettable" gesture subgraph are all forced to wait on the tap-and-a-half text interaction gesture before
resetting, which causes the bug here, since the synthetic single tap gesture is in this "immediately resettable"
gesture subgraph.
To mitigate this, this patch pushes the tap-and-a-half text selection gesture, along with the loupe gesture,
context menu relationship gesture, and drag lift gestures (i.e. the other gestures that are connected to the
tap-and-a-half gesture via failure requirements) out of the "immediately resettable" subgraph, and into the
"delayed" subgraph.
Test: fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler.html
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
LayoutTests:
Add a new layout test to verify that double tapping a button with fast-clicking enabled (i.e. in a device-width
viewport) fires two click events.
- fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler-expected.txt: Added.
- fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261529] by
-
- 12 edits2 adds in branches/safari-609-branch
Cherry-pick r259669. rdar://problem/63111225
Preventing touch events should not prevent gestures installed above WKWebView from recognizing
https://bugs.webkit.org/show_bug.cgi?id=210080
<rdar://problem/61365814>
Reviewed by Tim Horton.
Source/WebKit:
Makes a small adjustment to native gesture deferral logic, so that gestures installed above WKWebView (in the
view hierarchy) are not prevented from recognizing by WKDeferringGestureRecognizer. This makes it possible for
WebKit clients to install custom gestures outside of WKWebView that cannot be prevented by web content, without
having to create a separate window and pass touches through to the WKWebView.
Test: fast/events/touch/ios/prevent-default-with-window-tap-gesture.html
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
Tools:
Add a UIScriptController helper method that allows a test to install a tap gesture recognizer on the UIWindow
containing the web view. This method additionally takes a JavaScript callback, which is invoked when the tap
gesture is recognized.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptContext.h:
- TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::installTapGestureOnWindow):
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView resetInteractionCallbacks]): (-[TestRunnerWKWebView didRecognizeTapOnWindow]): (-[TestRunnerWKWebView windowTapRecognizedCallback]): (-[TestRunnerWKWebView setWindowTapRecognizedCallback:]): (-[TestRunnerWKWebView willMoveToWindow:]): (-[TestRunnerWKWebView didMoveToWindow]): (-[TestRunnerWKWebView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::installTapGestureOnWindow):
LayoutTests:
Add a new layout test to verify that calling preventDefault() on touchstart doesn't prevent gesture recognizers
installed above the WKWebView from recognizing. To do this, we use the new UIScriptController method to add a
gesture recognizer to the window containing the web view, and then simulate a tap over an element that prevents
the touchstart event.
- fast/events/touch/ios/prevent-default-with-window-tap-gesture-expected.txt: Added.
- fast/events/touch/ios/prevent-default-with-window-tap-gesture.html: Added.
- resources/ui-helper.js: (window.UIHelper.async activateElementAfterInstallingTapGestureOnWindow.return.new.Promise.): (window.UIHelper.async activateElementAfterInstallingTapGestureOnWindow.return.new.Promise): (window.UIHelper.async activateElementAfterInstallingTapGestureOnWindow): (window.UIHelper):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261528] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255456. rdar://problem/63112259
REGRESSION (r253267): Swipe from edge on Twitter images no longer goes back
https://bugs.webkit.org/show_bug.cgi?id=207011
<rdar://problem/58966044>
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]): The new touch-event async deferring gesture recognizer was erroneously deferring edge swipes, which are not allowed to be blocked by touch events. Opt them out of the new gesture gate mechanism.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255456 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261527] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r258675. rdar://problem/62978870
WebCoreArgumentCoders should check bufferIsLargeEnoughToContain before allocating buffers
https://bugs.webkit.org/show_bug.cgi?id=209219
Reviewed by Darin Adler.
- Shared/WebCoreArgumentCoders.cpp: (IPC::decodeSharedBuffer): Added checking of bufferIsLargeEnoughToContain. (IPC::decodeTypesAndData): Don't allocate a buffer with the decoded size. bufferIsLargeEnoughToContain can't be used in this case because SharedBuffer is encoded as variable length data. Instead, append items one-by-one.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261526] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r258991. rdar://problem/62978907
Fix build after https://trac.webkit.org/changeset/258977/webkit
https://bugs.webkit.org/show_bug.cgi?id=209545
Unreviewed.
- dom/Document.cpp: (WebCore::Document::visibilityStateChanged): Add ENABLE(MEDIA_STREAM) compilation flag.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261525] by
-
- 9 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r258977. rdar://problem/62978907
Audio fails to capture stream in WebRTC if AudioSession gets interrupted
https://bugs.webkit.org/show_bug.cgi?id=208516
<rdar://problem/60020467>
Reviewed by Eric Carlson.
In case of page going to hidden, continue calling each capture factory to mute the corresponding sources if needed.
In case of page being visible again, reset all tracks according page muted state. This allows restarting tracks that have been
muted while page was hidden (video tracks or suspended audio tracks).
Since tracks can go to muted when visibility changes, we no longer return early when setting the muted state of a page to the same value.
Instead we apply it which ensures we comply with what UIProcess wants.
We start removing the concept of a RealtimeMediaSource be interrupted. Instead we use muting of sources.
This allows UIProcess or the page to override any muted state, for instance if page goes in foreground again.
We update the AudioSharedUnit to allow restarting capture even if suspended.
This ensures that we are able to restart capturing even if we do not receive the audio session end of interruption.
Also, this notification sometimes takes a long time to happen and we do not want to wait for it when user is interacting with the page.
A future refactoring will further remove RealtimeMediaSource interrupted-related code.
Manually tested.
- dom/Document.cpp: (WebCore::Document::visibilityStateChanged):
- page/Page.cpp: (WebCore::Page::setMuted):
- platform/audio/PlatformMediaSessionManager.h: (WebCore::PlatformMediaSessionManager::isInterrupted const):
- platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setInterrupted): (WebCore::RealtimeMediaSource::setMuted):
- platform/mediastream/mac/BaseAudioSharedUnit.cpp: (WebCore::BaseAudioSharedUnit::startProducingData): (WebCore::BaseAudioSharedUnit::resume): (WebCore::BaseAudioSharedUnit::suspend):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261524] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r261208. rdar://problem/62978272
Crash in match_constness<WebCore::CSSValue, WebCore::CSSPrimitiveValue>::type& WTF::downcast<WebCore::CSSPrimitiveValue, WebCore::CSSValue> -- ASAN
https://bugs.webkit.org/show_bug.cgi?id=211479
Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-05
Reviewed by Geoffrey Garen.
Added check to downcast CSSValue to CSSPrimitiveValue, only if valid CSSPrimitveValue is associated with the property.
New test would be added to Internal repository.
- css/StyleProperties.cpp: (WebCore::StyleProperties::pageBreakPropertyValue const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261208 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261523] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r261024. rdar://problem/62978260
[IPC hardening] createMessageDecoder() needs a validity check
<https://webkit.org/b/211260>
<rdar://problem/61914087>
Reviewed by Darin Adler.
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::createMessageDecoder):
- Add validity check and early return for
numDescriptors.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261522] by
-
- 2 edits in branches/safari-609-branch/Source/WTF
Cherry-pick r260907. rdar://problem/62978877
[Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
https://bugs.webkit.org/show_bug.cgi?id=211028
<rdar://problem/61173289>
Reviewed by Aakash Jain.
Follow-up test failure fix; correct the debug/non-debug variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT.
- wtf/win/SoftLinking.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:22 PM Changeset in webkit [261521] by
-
- 9 edits in branches/safari-609-branch/Source
Cherry-pick r260832. rdar://problem/62978877
[Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
https://bugs.webkit.org/show_bug.cgi?id=211028
Reviewed by Eric Carlson.
Source/WebCore/PAL:
Make MediaToolboxSoftLink fully exported from PAL.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
Source/WebKit:
Adopt a new notification which signals that the receiver should re-query for HDR support.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::webProcessPoolHighDynamicRangeDidChangeCallback): (WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback):
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback): (WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebProcessPool.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261520] by
-
- 5 edits in branches/safari-609-branch/Source
Cherry-pick r260682. rdar://problem/62978266
[WTF] allThreads registration is racy with allThreads unregistration
https://bugs.webkit.org/show_bug.cgi?id=210995
<rdar://problem/61609690>
Reviewed by Keith Miller.
Source/WebCore:
- page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformCollectCPUData):
Source/WTF:
There is a race between registering a thread to allThreads and unregistering a thread from allThreads.
- Caller: A new thread is created, but not registering it to allThreads yet.
- Thread: The thread is running.
- Thread: The thread finishes its execution before the thread is registered into allThreads.
- Thread: The thread unregisters itself from allThreads.
- Caller: Registers the new thread to allThreads after it already finished its execution.
- The thread is never removed from allThreads.
This patch adds m_didUnregisterFromAllThreads flag to Thread, and add the thread to allThreads only when this flag is false.
Covered by LayoutTests/inspector/cpu-profiler/threads.html.
- wtf/Threading.cpp: (WTF::Thread::create): (WTF::Thread::didExit):
- wtf/Threading.h: (WTF::Thread::Thread):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261519] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r260666. rdar://problem/62978264
IPC::Decoder should use create() pattern
<https://webkit.org/b/210949>
<rdar://problem/62144409>
Reviewed by Geoffrey Garen.
- Platform/IPC/Decoder.cpp: (IPC::Decoder::create): Add implementation. Returns nullptr if Decoder constructor returns an invalid object. (IPC::Decoder::Decoder): Mark invalid if m_buffer is not 64-bit aligned. (IPC::Decoder::unwrapForTesting): Switch to Decoder::create().
- Platform/IPC/Decoder.h: (IPC::Decoder::create): Add declaration. (IPC::Decoder::Decoder): Make explicit. (Can't be made private since we use std::unique_ptr<Decoder>.)
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::createMessageDecoder): Switch to Decoder::create().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261518] by
-
- 3 edits4 adds in branches/safari-609-branch
Cherry-pick r260598. rdar://problem/62978929
Allow credentials for same-origin css mask images
https://bugs.webkit.org/show_bug.cgi?id=210895
<rdar://problem/60093888>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-23
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/security/css-mask-image-credentials.html
r230006 went a step too far in restricting what is allowed with css mask images.
Basic authentication credentials should be allowed with such requests as they are in Chrome and Firefox.
This can be seen by doing run-webkit-httpd then opening http://127.0.0.1:8000/security/css-mask-image-credentials.html
In Chrome and Firefox you'll see it forward to a page that has a blue square.
In Safari before this change you'll see a yellow square and a basic authentication prompt.
In Safari after this change you'll see the same blue square you see in Chrome and Firefox.
- style/StylePendingResources.cpp: (WebCore::Style::loadPendingImage):
LayoutTests:
- http/tests/security/css-mask-image-credentials-expected.html: Added.
- http/tests/security/css-mask-image-credentials.html: Added.
- http/tests/security/resources/css-mask-image-credentials-2.html: Added.
- http/tests/security/resources/image-credential-check.php: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261517] by
-
- 3 edits2 adds in branches/safari-609-branch
Cherry-pick r260528. rdar://problem/62978914
REGRESSION (r249160): Deleting newline after pasting text ending in a newline results in a discontinuity
https://bugs.webkit.org/show_bug.cgi?id=210677
<rdar://problem/61954169>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: fast/text/delete-line-break-in-pre.html
- rendering/RenderTextLineBoxes.cpp: (WebCore::RenderTextLineBoxes::dirtyRange):
r249160 changed InlineTextBox end offset to be consistently first-past-end.
The code here that updates lineBreakPos needs to take this into account too.
LayoutTests:
- fast/text/delete-line-break-in-pre-expected.html: Added.
- fast/text/delete-line-break-in-pre.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261516] by
-
- 2 edits in branches/safari-609-branch/Source/WebKitLegacy/mac
Cherry-pick r260315. rdar://problem/62978882
-[WebPreferences initWithCoder:] should use -[NSCoder decodeValueOfObjCType:at:size:]
<https://webkit.org/b/210621>
<rdar://problem/61906458>
Reviewed by Anders Carlsson.
- WebView/WebPreferences.mm: (-[WebPreferences initWithCoder:]):
- Switch to -[NSCoder decodeValueOfObjCType:at:size:].
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261515] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r260229. rdar://problem/62978244
Re-land: [IPC Hardening] MachMessage::create() should use checked arithmetic
<https://webkit.org/b/210572>
<rdar://problem/61729947>
Reviewed by Chris Dumez.
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::Connection::sendOutgoingMessage):
- Add nullptr check since MachMessage::create() can return an empty std::unique_ptr<> now.
- Platform/IPC/cocoa/MachMessage.cpp: (IPC::MachMessage::create):
- Use CheckedSize to compute the buffer size.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261514] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r260201. rdar://problem/62978925
[macOS] Update ScreenTime as playback state changes
https://bugs.webkit.org/show_bug.cgi?id=210518
<rdar://problem/61181092>
Reviewed by Eric Carlson.
Follow up to r260182; Pass a WeakPtr into our task queue in sessionWillEndPlayback rather than a bare pointer.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::sessionWillEndPlayback):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260201 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261513] by
-
- 3 edits2 adds in branches/safari-609-branch
Cherry-pick r259877. rdar://problem/62978910
[CSS Shadow Parts] Bad style sharing between sibling elements with different part attributes
https://bugs.webkit.org/show_bug.cgi?id=210249
<rdar://problem/61547528>
Reviewed by Daniel Bates.
Source/WebCore:
Style sharing optimization was unconditionally allowed for elements that were styled with part pseudo element.
This could lead to miscomputed style.
Test case by Justin Fagnani.
Test: fast/css/shadow-parts/shadow-part-style-sharing.html
- style/StyleSharingResolver.cpp: (WebCore::Style::SharingResolver::canShareStyleWithElement):
Only allow style sharing if parts match.
LayoutTests:
- fast/css/shadow-parts/shadow-part-style-sharing-expected.html: Added.
- fast/css/shadow-parts/shadow-part-style-sharing.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261512] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r259611. rdar://problem/62978871
Delete line boxes when moving text renderers between block flows
https://bugs.webkit.org/show_bug.cgi?id=210000
Reviewed by Antti Koivisto.
After style and/or tree mutation the existing line boxes are destroyed during the subsequent layout.
When the text renderer moves between block flows and the destination block flow initiates a different
type of line layout, we need to make sure the previous line content is cleaned up properly.
- rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::layoutSimpleLines): (WebCore::RenderBlockFlow::layoutLFCLines):
- rendering/RenderText.cpp: (WebCore::RenderText::removeAndDestroyTextBoxes): (WebCore::RenderText::dirtyLineBoxes): (WebCore::RenderText::deleteLineBoxes):
- rendering/RenderText.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261511] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r259525. rdar://problem/62978878
Protect contentFrame in SubframeLoader::loadOrRedirectSubframe with RefPtr.
https://bugs.webkit.org/show_bug.cgi?id=127096
<rdar://problem/61221941>
Reviewed by Alex Christensen.
ContentFrame is used throughout loadOrRedirectSubframe so it needs to be protected with RefPtr.
And if loader changes frame in SubframeLoader::loadSubframe, return nullptr to notify the caller.
No new tests, covered by existing test.
- loader/SubframeLoader.cpp: (WebCore::SubframeLoader::loadOrRedirectSubframe): (WebCore::SubframeLoader::loadSubframe):
- loader/SubframeLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261510] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r259353. rdar://problem/62978934
Don't use raw pointers in ShadowRoot.
https://bugs.webkit.org/show_bug.cgi?id=209843
<rdar://problem/61069603>
Reviewed by Brent Fulgham.
- dom/Element.cpp: (WebCore::Element::addShadowRoot):
- dom/ShadowRoot.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261509] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r259348. rdar://problem/62978878
Notify accessibility when a node is removed from its ancestor.
https://bugs.webkit.org/show_bug.cgi?id=209819
Reviewed by Chris Fleizach.
Covered by existing tests in LayoutTests/accessibility.
- dom/Node.cpp: (WebCore::Node::removedFromAncestor):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261508] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r259141. rdar://problem/62978919
Web Inspector: should also escape the method when Copy as cURL
https://bugs.webkit.org/show_bug.cgi?id=209665
<rdar://problem/58432154>
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Models/Resource.js: (WI.Resource.prototype.generateCURLCommand): (WI.Resource.prototype.generateCURLCommand.escapeStringPosix): The method could be maliciously crafted, so we should also escape it (if needed).
LayoutTests:
- http/tests/inspector/network/copy-as-curl.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [261507] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r257929. rdar://problem/62978899
In case an activating service worker is terminated, it should go to activated state
https://bugs.webkit.org/show_bug.cgi?id=208440
<rdar://problem/59742332>
Reviewed by Chris Dumez.
Source/WebCore:
Covered by updated test.
- workers/service/server/SWServerWorker.cpp: (WebCore::SWServerWorker::setState): As per spec, if an activated service worker is terminated or its activate event is timing out, we should move it to activate state.
LayoutTests:
- http/wpt/service-workers/service-worker-spinning-activate.https.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [261506] by
-
- 23 edits in trunk
Fail navigations to non app-bound domains after use of app-bound APIs
https://bugs.webkit.org/show_bug.cgi?id=211647
<rdar://problem/62978159>
Reviewed by Brent Fulgham.
Source/WebCore:
Simplified in-app browser privacy protections check into one, better
named function.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):
- loader/FrameLoaderClient.h:
- page/Frame.cpp:
(WebCore::Frame::injectUserScriptImmediately):
- page/Page.cpp:
(WebCore::Page::injectUserStyleSheet):
- page/WebKitNamespace.cpp:
(WebCore::WebKitNamespace::messageHandlers):
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
Rearranged ordering so the message to WebPageProxy only gets sent to
indicate app-bound behavior if user style sheets actually exist.
Source/WebKit:
A lot of this patch is deleting the unnecessary variable/function
hasNavigatedAwayFromAppBoundDomain now that navigating away from an
app-bound domain is not possible.
To address the bug, this sets the default isNavigatingToAppBoundDomain
value to be WTF::nullopt. This will allow app-bound behaviors until
a navigation has been attempted, in which case it will fail or will
update isNavigatingToAppBoundDomain to the correct value.
- Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
- Shared/LoadParameters.h:
- Shared/PolicyDecision.h:
(WebKit::PolicyDecision::encode const):
(WebKit::PolicyDecision::decode):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::hasNavigatedAwayFromAppBoundDomain const): Deleted.
Remove hasNavigatedAwayFromAppBoundDomain.
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted):
Check for new m_hasExecutedAppBoundBehaviorBeforeNavigation parameter
and fail the navigation if a WebView has used app-bound behavior then
tries to navigate to a non app-bound domain.
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Update error message to be more general now that more than one error
can occur.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::setHasExecutedAppBoundBehaviorBeforeNavigation):
- UIProcess/WebPageProxy.messages.in:
New parameter to indicate a WebView has used app-bound APIs before
navigating.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::shouldEnableInAppBrowserPrivacyProtections):
(WebKit::WebFrameLoaderClient::hasNavigatedAwayFromAppBoundDomain): Deleted.
(WebKit::WebFrameLoaderClient::needsInAppBrowserPrivacyQuirks const): Deleted.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Combined two functions into a simpler function:
shouldEnableInAppBrowserPrivacyProtections().
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::updatePreferences):
Store the special app-bound domain flag to gate the service worker
API. This should be stored separately from
m_isNavigatingToAppBoundDomain, because in the WebPage constructor we
don't yet know whether the WKAppBoundDomains key exists.
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::didReceivePolicyDecision):
Remove hasNavigatedAwayFromAppBoundDomain.
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
(WebKit::WebPage::shouldEnableInAppBrowserPrivacyProtections):
If m_needsInAppBrowserPrivacyQuirks are on for testing, don't enable
protections. Only notify the WebPageProxy of app-bound behavior if
a navigation has not occured and we know the webView is not app-bound
(in order to limit IPC).
(WebKit::m_isNavigatingToAppBoundDomain): Deleted.
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isNavigatingToAppBoundDomain const):
(WebKit::WebPage::setIsNavigatingToAppBoundDomain): Deleted.
(WebKit::WebPage::hasNavigatedAwayFromAppBoundDomain const): Deleted.
(WebKit::WebPage::setHasNavigatedAwayFromAppBoundDomain): Deleted.
(WebKit::WebPage::needsInAppBrowserPrivacyQuirks const): Deleted.
Tools:
Added a new test to confirm a non-app bound navigation fails after
using script injection.
This fix also required changing any test which uses a restricted API
to confirm behavior of another restricted API. Tests can set
_setNeedsInAppBrowserPrivacyQuirks in the configuration to indicate
APIs should not be blocked, then toggle it to test actual behavior.
Also, we can remove any calls to _setInAppBrowserPrivacyEnabled
now that this is just an internal test flag.
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
(-[AppBoundDomainDelegate webView:didFinishNavigation:]):
(-[AppBoundDomainDelegate webView:didFailProvisionalNavigation:withError:]):
(-[AppBoundDomainDelegate waitForDidFinishNavigation]):
(-[AppBoundDomainDelegate waitForDidFailProvisionalNavigationError]):
(TEST):
- 4:46 PM Changeset in webkit [261505] by
-
- 2 edits in trunk/LayoutTests
Enable conformance2/textures/canvas/ and image_data/ tests
https://bugs.webkit.org/show_bug.cgi?id=211602
Patch by Kenneth Russell <kbr@chromium.org> on 2020-05-11
Reviewed by Dean Jackson.
Enable all of these layout tests, which are now passing.
- 4:30 PM Changeset in webkit [261504] by
-
- 6 edits1 delete in trunk/Source/JavaScriptCore
Remove unused BytecodeKills.h
https://bugs.webkit.org/show_bug.cgi?id=211753
Reviewed by Yusuke Suzuki.
No one uses this class anymore, we should get rid of it.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeKills.h: Removed.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::computeKills): Deleted.
- bytecode/BytecodeLivenessAnalysis.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::killsFor): Deleted.
- dfg/DFGGraph.h:
- 4:22 PM Changeset in webkit [261503] by
-
- 3 edits in branches/safari-610.1.12-branch/Source/WebKit
Cherry-pick r261452. rdar://problem/63055916
Attemp to fix internal iOS build
- Platform/spi/ios/UIKitSPI.h:
- Define @class UIHoverEvent using header if available, else fall back to local class definition.
- Define methods separately from class definition.
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer setView:]):
- Use new method if it is available.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:19 PM Changeset in webkit [261502] by
-
- 8 edits in branches/safari-610.1.12-branch/Source
Versioning.
- 4:13 PM Changeset in webkit [261501] by
-
- 3 edits in trunk/Source/WebCore
Enable the mock video presentation mode in related layout tests and fix test failures
https://bugs.webkit.org/show_bug.cgi?id=211645
Reviewed by Eric Carlson.
Revert the unnecessary change in r261493 to fix the build failures when
the Picture-in-Picture API is disabled.
- html/HTMLVideoElement.cpp:
- html/HTMLVideoElement.h:
- 3:44 PM Changeset in webkit [261500] by
-
- 6 edits in trunk/Source
Remove some unnecessary indirection when getting Document’s Editor
https://bugs.webkit.org/show_bug.cgi?id=211744
Reviewed by Geoffrey Garen.
Source/WebCore:
After r261018, there's no longer a need to reach into Document's Frame to get the Editor instance, since
Document itself owns the Editor (and Frame's implementation of editor() just calls back into the document
anyways). No change in behavior.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling):
- dom/Document.cpp:
(WebCore::Document::setFocusedElement):
(WebCore::Document::registerAttachmentIdentifier):
(WebCore::Document::didInsertAttachmentElement):
(WebCore::Document::didRemoveAttachmentElement):
- testing/Internals.cpp:
(WebCore::Internals::markerCountForNode):
(WebCore::Internals::setMarkedTextMatchesAreHighlighted):
(WebCore::Internals::lastSpellCheckRequestSequence):
(WebCore::Internals::lastSpellCheckProcessedSequence):
(WebCore::Internals::hasSpellingMarker):
(WebCore::Internals::hasAutocorrectedMarker):
(WebCore::Internals::setContinuousSpellCheckingEnabled):
(WebCore::Internals::setAutomaticQuoteSubstitutionEnabled):
(WebCore::Internals::setAutomaticLinkDetectionEnabled):
(WebCore::Internals::setAutomaticDashSubstitutionEnabled):
(WebCore::Internals::setAutomaticTextReplacementEnabled):
(WebCore::Internals::setAutomaticSpellingCorrectionEnabled):
(WebCore::Internals::handleAcceptedCandidate):
(WebCore::Internals::isOverwriteModeEnabled):
(WebCore::Internals::toggleOverwriteModeEnabled):
(WebCore::Internals::rangeOfString):
(WebCore::Internals::countMatchesForText):
(WebCore::Internals::hasGrammarMarker):
Source/WebKit:
See WebCore ChangeLog for more information. No change in behavior.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
- 3:42 PM Changeset in webkit [261499] by
-
- 5 edits in trunk
Web Inspector: show JavaScript Worker name as an internal property
https://bugs.webkit.org/show_bug.cgi?id=211708
Reviewed by Timothy Hatcher.
Source/WebCore:
Test: inspector/worker/worker-create-and-terminate.html
- inspector/WebInjectedScriptHost.cpp:
(WebCore::WebInjectedScriptHost::getInternalProperties):
- workers/Worker.h:
(WebCore::Worker::name const): Added.
LayoutTests:
- inspector/worker/worker-create-and-terminate.html:
- 3:40 PM Changeset in webkit [261498] by
-
- 2 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: Network: Timing: gaps around the "Resource does not have timing data" message
https://bugs.webkit.org/show_bug.cgi?id=211648
Reviewed by Timothy Hatcher.
- UserInterface/Main.html:
- UserInterface/Views/ResourceTimingContentView.css: Added.
(.resource-details.resource-timing > .message-text-view):
- 3:38 PM Changeset in webkit [261497] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: Preview: default detached window size not wide enough for navigation items to be visible
https://bugs.webkit.org/show_bug.cgi?id=211649
Reviewed by Timothy Hatcher.
- UserInterface/Views/NetworkDetailView.js:
(WI.NetworkDetailView.prototype.initialLayout):
Don't center the panel switcher radio buttons as when they are centered, there's not always
enough room forWI.NavigationItems for the currently showingWI.ContentView. Aligning
the panel switcher radio buttons to the start allows for as much room as possible.
- 3:29 PM Changeset in webkit [261496] by
-
- 2 edits in trunk/Tools
Add some logs to diagnose why WebKitLegacy.CrossPartitionFileSchemeAccess API test times out in EWS
https://bugs.webkit.org/show_bug.cgi?id=211738
Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-11
Reviewed by Darin Adler.
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm:
(TestWebKitAPI::TEST):
I saw an instance of failing to make a partition because the "file" already existed.
Try cleaning up anything left from last time this test timed out to prevent it from timing out again.
- 3:13 PM Changeset in webkit [261495] by
-
- 2 edits in trunk/Source/WebKit
Fix possible crash in ViewGestureController on macOS
https://bugs.webkit.org/show_bug.cgi?id=211745
Reviewed by Tim Horton.
When ViewGestureController::resetState() clears m_swipeCancellationTracker, it should set it to canceled so that
any pending -trackSwipeEventWithOptions:... which is holding a reference to the WKSwipeCancellationTracker knows
to stop.
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::resetState):
(WebKit::ViewGestureController::reset):
- 2:51 PM Changeset in webkit [261494] by
-
- 8 edits2 deletes in trunk/Source/WebCore
Have ScrollingThread use a RunLoop rather than rolling its own
https://bugs.webkit.org/show_bug.cgi?id=211730
Reviewed by Darin Adler.
ScrollingThread rolled its own runloop/function dispatch by dropping to CF for macOS.
Fix to use RunLoop which provides the same functionality.
There was also a race creating the ScrollingThread for the first time, since both
the main thread, and EventDispatcher can call ScrollingThread::dispatch() early on,
so fix with a std::once block.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::singleton):
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::initializeRunLoop):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread): Deleted.
(WebCore::ScrollingThread::wakeUpRunLoop): Deleted.
(WebCore::ScrollingThread::threadRunLoopSourceCallback): Deleted.
- page/scrolling/ScrollingThread.h:
(WebCore::ScrollingThread::runLoop):
- page/scrolling/mac/ScrollingThreadMac.mm: Removed.
- 2:03 PM Changeset in webkit [261493] by
-
- 41 edits in trunk
Enable the mock video presentation mode in related layout tests and fix test failures
https://bugs.webkit.org/show_bug.cgi?id=211645
Reviewed by Darin Adler.
Source/WebCore:
Clean up the internal states of video element regarding video presentation mode
to simplify the task to write reliable layout tests for video fullscreen and
Picture-in-Picture.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreen):
Update the states after we are sure the video element will enter fullscreen.
(WebCore::HTMLMediaElement::exitFullscreen):
Remove the unnecessary "fullscreenModeChanged(VideoFullscreenModeNone)".
- html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::waitingToEnterFullscreen):
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitDisplayingFullscreen):
The function webkitDisplayingFullscreen() will return true after the process
to enter fullscreen is completed.
- html/HTMLVideoElement.h:
Expose didBecomeFullscreenElement() when VIDEO_PRESENTATION_MODE is enabled.
Source/WebKit:
Fix the mistake in VideoFullscreenManager::supportsVideoFullscreen() introduced in r202274.
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::supportsVideoFullscreen const):
Source/WebKitLegacy/mac:
Call HTMLVideoElement::didBecomeFullscreenElement() after a video element enters
fullscreen (to be consistent with WK2).
- WebView/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController windowDidEnterFullScreen:]):
- WebView/WebView.mm:
(-[WebView _enterVideoFullscreenForVideoElement:mode:]):
LayoutTests:
- http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast-expected.txt:
- http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:
- media/media-fullscreen-inline.html:
- media/media-fullscreen-loop-inline-expected.txt:
- media/media-fullscreen-loop-inline.html:
- media/media-fullscreen-pause-inline-expected.txt:
- media/media-fullscreen-pause-inline.html:
- media/media-fullscreen-return-to-inline-expected.txt:
- media/media-fullscreen-return-to-inline.html:
- media/media-fullscreen.js:
(async beginfullscreen):
(async fullscreenerror):
(addEventListeners):
(beginfullscreen): Deleted.
(fullscreenerror): Deleted.
- media/modern-media-controls/css/webkit-cursor-visibility-auto-hide-expected.txt:
- media/modern-media-controls/css/webkit-cursor-visibility-auto-hide.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html:
- media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen-expected.txt:
- media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen.html:
- media/modern-media-controls/media-controller/media-controller-fullscreen-ltr-expected.txt:
- media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html:
- media/modern-media-controls/media-controller/media-controller-space-bar-toggle-playback-expected.txt:
- media/modern-media-controls/media-controller/media-controller-space-bar-toggle-playback.html:
- media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
- media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
- media/video-fullscreen-only-playback-expected.txt:
- media/video-fullscreen-only-playback.html:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 1:32 PM Changeset in webkit [261492] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r261446.
The test is still failing.
Reverted changeset:
"[ macOS ] REGRESSION (r259139):
webgl/2.0.0/conformance2/rendering/framebuffer-completeness-
unaffected.html is failing"
https://bugs.webkit.org/show_bug.cgi?id=209740
https://trac.webkit.org/changeset/261446
- 1:05 PM Changeset in webkit [261491] by
-
- 2 edits in trunk/Tools
Add some logs to diagnose why WebKitLegacy.CrossPartitionFileSchemeAccess API test times out in EWS
https://bugs.webkit.org/show_bug.cgi?id=211738
Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-11
Reviewed by Mark Lam.
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm:
(TestWebKitAPI::TEST):
- 12:45 PM Changeset in webkit [261490] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Update message filtering rules in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=211188
<rdar://problem/60922910>
Reviewed by Brent Fulgham.
Based on telemetry and local testing, update the message filtering rules in the WebContent process' sandbox on iOS.
Messages that have not been observed being in use, should be denied.
No new tests, covered by existing tests.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:42 PM Changeset in webkit [261489] by
-
- 2 edits in trunk/Source/WebKit
[iOS] WKWebView.evaluateJavaScript should run at foreground priority when app is foreground
https://bugs.webkit.org/show_bug.cgi?id=211734
Reviewed by Darin Adler.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
- 12:37 PM Changeset in webkit [261488] by
-
- 4 edits in trunk
[Web Animations] Document.getAnimations() should only consider document connection and not timeline association
https://bugs.webkit.org/show_bug.cgi?id=211697
Patch by Antoine Quint <Antoine Quint> on 2020-05-11
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark two additional WPT tests as PASS.
- web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt:
Source/WebCore:
The Document.getAnimations() function should return any animation running for an element that is a child of the
target Document. We now consider all current animations, regardless of which timeline they might be associated
with. This lets us pass the final two WPT Document.getAnimations() tests.
- dom/Document.cpp:
(WebCore::Document::matchingAnimations):
- 12:37 PM Changeset in webkit [261487] by
-
- 6 edits in trunk/Source/WebCore
Add implementation for AXIsolatedObject::elementPath, hasHighlighting, isBlockquote, isKeyboardFocusable.
https://bugs.webkit.org/show_bug.cgi?id=211732
Reviewed by Chris Fleizach.
Covered by several tests.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isBlockquote const): Moved to base class.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::isBlockquote const):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Cache the above mentioned properties.
(WebCore::AXIsolatedObject::pathAttributeValue const):
(WebCore::AXIsolatedObject::isBlockquote const): Moved to base class.
(WebCore::AXIsolatedObject::isKeyboardFocusable const): Implemented inline in header.
(WebCore::AXIsolatedObject::hasHighlighting const): Implemented inline in header.
(WebCore::AXIsolatedObject::elementPath const): Implemented inline in header.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 12:05 PM Changeset in webkit [261486] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, reverting r261440.
Caused 6 TestWTF.WTF failures
Reverted changeset:
"Add iterator checking to ListHashSet"
https://bugs.webkit.org/show_bug.cgi?id=211669
https://trac.webkit.org/changeset/261440
- 11:59 AM Changeset in webkit [261485] by
-
- 3 edits in trunk/Source/WebCore
Fix assertion after r261414
https://bugs.webkit.org/show_bug.cgi?id=211731
This fixes a debug assertion that fired 100% of the time when running the test introduced in r261414
I also respond to Darin's and Youenn's post-commit feedback.
- page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::generateReferrerHeader):
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setHTTPReferrer):
- 11:43 AM Changeset in webkit [261484] by
-
- 2 edits in trunk/Source/WTF
Use alias template for <type_traits> in WTF/wtf/TypeCast.h
https://bugs.webkit.org/show_bug.cgi?id=211714
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-05-11
Reviewed by Darin Adler.
- wtf/TypeCasts.h:
(WTF::TypeCastTraits::isOfType):
(WTF::is):
(WTF::downcast):
- 11:28 AM Changeset in webkit [261483] by
-
- 9 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207583
<rdar://problem/59362947>
Reviewed by Geoffrey Garen.
Use in-test DumpJSConsoleLogInStdErr instead of TestExpectations to make sure this option is set for iOS.
- TestExpectations:
- http/wpt/beacon/cors/cors-preflight-blob-failure.html:
- http/wpt/beacon/cors/cors-preflight-blob-success.html:
- http/wpt/beacon/cors/cors-preflight-cookie.html:
- http/wpt/beacon/cors/cors-preflight-redirect-failure.html:
- http/wpt/beacon/cors/cors-preflight-redirect-from-crossorigin-to-sameorigin.html:
- http/wpt/beacon/cors/cors-preflight-redirect-success.html:
- http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html:
Update test to make sure that stderr console log lines will print whether the first load is failing or the second.
- 10:54 AM Changeset in webkit [261482] by
-
- 3 edits in trunk/Source/WebCore
Check the validity of the underlying Document before updating the isolated tree.
https://bugs.webkit.org/show_bug.cgi?id=211728
Reviewed by Chris Fleizach.
Solves crashes in isolated tree mode for several LayoutTests.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedUIElementForPage): Update the focused
document styles before returning the isolated tree focused object.
(WebCore::AXObjectCache::notificationPostTimerFired): Ignored
notification if underlying Document doesn't have a living render tree.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren): Don't update isolated object
if associated AXObject doesn't have a Document or the Document doesn't have a live render tree.
- 9:26 AM Changeset in webkit [261481] by
-
- 8 edits in trunk
Add mechanism to turn on accessibility isolated tree mode from WebKitTestRunner.
https://bugs.webkit.org/show_bug.cgi?id=211725
Reviewed by Chris Fleizach.
Source/WebCore:
If the client is WebKitTestRunner, enable isolated tree mode.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isIsolatedTreeEnabled):
Source/WebCore/PAL:
Added _AXSSetIsolatedTreeMode to turn on isolated tree mode from WebKitTestRunner.
- pal/spi/cocoa/AccessibilitySupportSPI.h:
- pal/spi/mac/HIServicesSPI.h:
Tools:
Turn on isolated tree mode when appropriate.
- WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
- WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::updateIsolatedTreeMode):
- 9:22 AM Changeset in webkit [261480] by
-
- 4 edits2 adds in trunk
REGRESSION (r253267): issues on touchstart/touchend/touchmove (pointerdown/pointerup/pointermove) events
https://bugs.webkit.org/show_bug.cgi?id=211521
<rdar://problem/62942374>
Reviewed by Darin Adler.
Source/WebKit:
As a brief refresher, deferring gesture recognizers allow us to handle otherwise blocking touch events
asynchronously by having all preventable native gesture recognizers require the deferring gesture recognizer to
fail; we only fail the deferring gesture recognizer once the web process has handled the touch event, and did
not callpreventDefault().
These additional failure requirements can cause preventable gestures to be linked together in the same gesture
dependency subgraph; since each subgraph is reset only once all gestures in the subgraph have failed or ended,
this might cause some gestures to be reset after a delay (rather than being reset immediately). To mitigate
this, we divide the set of preventable gestures into multiple (currently, 2) subgraphs: one for gestures that
are reset after a delay, and another for gestures that are immediately resettable. This way, immediately
resettable gestures are able to reset and recognize again, without having to wait for other slower preventable
gesture recognizers to reset.
When fast-clicking is disabled (e.g. when loading a desktop web page on a mobile form factor, or when the
viewport has been zoomed in), the blocking synthetic double tap gesture recognizer (that is,WKContentView's
_doubleTapGestureRecognizer) is enabled, and adds itself as a dynamic failure requirement to the content
view's synthetic single tap gesture recognizer (_singleTapGestureRecognizer). In terms of the gesture
dependency graph, this causes the single tap gesture to form an edge with the double tap gesture, which ends up
uniting both deferring gesture recognizers under the same subgraph. This means UIWebTouchEventsGestureRecognizer,
which should be one of the gestures in the immediately resettable subgraph, is now connected to the rest of the
delayed resettable gestures, meaning that it cannot recognize until "slowly resettable" gestures such as the
tap-and-half text selection gesture have also been reset. This delay causes touch events to be dropped, as is
the case in this bug.
To fix this, simply quarantine the single tap and double tap gestures inside their own subgraph by introducing a
separate deferring gesture recognizer for them. When fast-clicking is enabled, this does not hinder the ability
for the single tap gesture to fire in rapid succession, since the double tap gesture is disabled (and thus, not
a part of the graph at all). when fast-clicking is disabled, then the double tap gesture will prevent the single
tap gesture from being immediately reset anyways, due to the direct failure requirement between the double and
single tap gesture.
Doing this ensures that no other immediately resettable gesture (
UIWebTouchEventsGestureRecognizerincluded)
is accidentally blocked from immediately resetting due to being linked to the delayed resettable gestures by way
of the synthetic single and double tap gestures.
Test: fast/events/touch/ios/tap-and-half-when-viewport-is-not-responsive.html
- UIProcess/ios/WKContentViewInteraction.h:
Add a dedicated deferring gesture recognizer for the synthetic single tap and double tap gesture recognizers.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
Use -_deferringGestureRecognizers instead of hard-coding logic for each deferring gesture.
(-[WKContentView _removeDefaultGestureRecognizers]): Ditto.
(-[WKContentView _addDefaultGestureRecognizers]): Ditto.
(-[WKContentView _deferringGestureRecognizers]):
We now have 3 distinct deferring gestures; instead of handling the three deferring gestures individually in
various places in this file, group them all behind a getter that returns an array of deferring gestures, and use
this instead.
(-[WKContentView _doneDeferringNativeGestures:]): Ditto.
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): Ditto.
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
Partition the synthetic single tap and double tap gestures into their own subgraph.
LayoutTests:
Add a layout test that synthesizes a tap-and-half gesture over an element with active touch event listeners, and
verifies that the second half of the gesture (i.e. the pan gesture) dispatches touchstart, touchmove, and
touchend events.
- fast/events/touch/ios/tap-and-half-when-viewport-is-not-responsive-expected.txt: Added.
- fast/events/touch/ios/tap-and-half-when-viewport-is-not-responsive.html: Added.
- 8:43 AM Changeset in webkit [261479] by
-
- 13 edits1 delete in trunk
Unreviewed, reverting r261296.
Rolling r260769 back in, since this was not causing a
regression.
Reverted changeset:
"Unreviewed, reverting r260769."
https://bugs.webkit.org/show_bug.cgi?id=211578
https://trac.webkit.org/changeset/261296
- 7:59 AM Changeset in webkit [261478] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, fix the watchOS build after r261457
Put -[WKActionSheetAssistant suggestedActionsForContextMenuWithPositionInformation:] behind a USE(UICONTEXTMENU)
compiler guard; currently, it is declared everywhere, but only implemented if ENABLE(DATA_DETECTION) &&
USE(UICONTEXTMENU). However, WKContentView only invokes it behind code that is guarded by USE(UICONTEXTMENU).
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant suggestedActionsForContextMenuWithPositionInformation:]):
- 7:56 AM Changeset in webkit [261477] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209067
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 7:43 AM Changeset in webkit [261476] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r259463): [ Mojave Debug ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing and timing out
https://bugs.webkit.org/show_bug.cgi?id=210219
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 6:40 AM Changeset in webkit [261475] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Introduce GridSpace
https://bugs.webkit.org/show_bug.cgi?id=211712
Reviewed by Antti Koivisto.
Normally we use the initial width/height (minimum width/height) value to compute the
distribution ratio for the extra space (e.g minimum widths are [ 1 ] [ 2 ] extra space: 6; final widths [ 1 + 2 ] [ 2 + 4 ]).
However is some rare case, while we use the minimum widths as the initial widths, the distribution ratio
is computed using the maximum widths.
This patch introduces GridSpace to be able to differentiate initial and distribution widths/heights (no functional change yet).
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::GridSpace::isEmpty const):
(WebCore::Layout::max):
(WebCore::Layout::operator-):
(WebCore::Layout::operator+=):
(WebCore::Layout::operator-=):
(WebCore::Layout::operator/):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
- 5:50 AM Changeset in webkit [261474] by
-
- 2 edits in trunk/JSTests
Skip on armv7/linux stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js
https://bugs.webkit.org/show_bug.cgi?id=211721
Unreviewed Gardening.
This test is failing on our linux armv7 bots on a flaky basis and requires investigation.
- stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
- 2:47 AM Changeset in webkit [261473] by
-
- 6 edits in trunk
[GTK] Media and audio permission request unit tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=158257
Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-11
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Add new private API to disable secure capture device contexts.
This is needed for the API tests.
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewSetMediaCaptureRequiresSecureConnection):
- UIProcess/API/glib/WebKitWebViewPrivate.h:
Tools:
Fix getUserMedia glib tests. They require unsecure capture device context.
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
- TestWebKitAPI/glib/TestExpectations.json:
- 2:23 AM Changeset in webkit [261472] by
-
- 2 edits in trunk/Tools
Fix typo 'Detacted' -> 'Detected'
https://bugs.webkit.org/show_bug.cgi?id=211715
Unreviewed.
- Scripts/run-jsc-stress-tests:
- 2:21 AM Changeset in webkit [261471] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, update baseline after r261443
https://bugs.webkit.org/show_bug.cgi?id=211717
Unreviewed gardening.
- platform/gtk/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt:
- 2:14 AM Changeset in webkit [261470] by
-
- 8 edits in trunk/Source/WebCore
[Web Animations] Refactor animation comparison by composite order in a single utility function
https://bugs.webkit.org/show_bug.cgi?id=211695
Reviewed by Darin Adler.
We used to split sorting of animations by composite order across several functions and files. Specifically,
DocumentTimeline::getAnimations() would first collect animations by class (CSS Transitions, then CSS
Animations, then JS-originated animations), and then sort each class, calling into the static function
compareDeclarativeAnimationOwningElementPositionsInDocumentTreeOrder() in some cases and into the
WebAnimationUtilities compareAnimationsByCompositeOrder() function in other.
Since we need to be able to sort animations by composite order in other situations, for instance when sorting
events when updating animations and sending events (which we will do in a future patch), we refactor all
of the comparison logic into compareAnimationsByCompositeOrder(), removing the need to provide an AnimationList,
which is specific to the case where we know we are comparing CSSAnimation objects targeting a shared element.
This effectively empties DocumentTimeline::getAnimations() so we remove this function and filter relevant
animations in Document::matchingAnimations() and call compareAnimationsByCompositeOrder() before returning
the compiled animations.
No new tests since there is no change of behavior.
- animation/DocumentTimeline.cpp:
(WebCore::compareDeclarativeAnimationOwningElementPositionsInDocumentTreeOrder): Deleted.
(WebCore::DocumentTimeline::getAnimations const): Deleted.
- animation/DocumentTimeline.h:
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::ensureEffectsAreSorted):
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::commitStyles):
- animation/WebAnimationUtilities.cpp:
(WebCore::compareDeclarativeAnimationOwningElementPositionsInDocumentTreeOrder):
(WebCore::compareCSSTransitions):
(WebCore::compareCSSAnimations):
(WebCore::compareAnimationsByCompositeOrder):
- animation/WebAnimationUtilities.h:
- dom/Document.cpp:
(WebCore::Document::matchingAnimations):
- 2:05 AM Changeset in webkit [261469] by
-
- 5 edits in trunk
[WPE] Layout test media/encrypted-media/mock-MediaKeySystemAccess.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=181225
Reviewed by Darin Adler.
Source/WebCore:
WebCore::CDM::createInstance assumes its private instance always
produces a valid pointer. This is not the case in the testing
mocks. Guard against it.
Test: media/encrypted-media/mock-MediaKeySystemAccess.html
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::createInstance): Guard against null pointers in
mock scenarios.
LayoutTests:
- platform/gtk/TestExpectations: The test is no longer crashing.
- platform/wpe/TestExpectations: Ditto.
May 10, 2020:
- 11:57 PM Changeset in webkit [261468] by
-
- 7 edits in trunk
Fix base64.any.html test
https://bugs.webkit.org/show_bug.cgi?id=211671
Patch by Rob Buis <rbuis@igalia.com> on 2020-05-10
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test expectation.
- web-platform-tests/fetch/data-urls/base64.any-expected.txt:
- web-platform-tests/fetch/data-urls/base64.any.worker-expected.txt:
Source/WebCore:
Fix base64.any.html test by extending DataURLDecoder with a
forgiving-base64 decode mode [1], as used by the Fetch
data: URL processor algorithm [2].
Behavior matches Chrome and Firefox.
[1] https://infra.spec.whatwg.org/#forgiving-base64-decode
[2] https://fetch.spec.whatwg.org/#data-url-processor
Test: imported/w3c/web-platform-tests/fetch/data-urls/base64.any.html
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::loadDataURL):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decode):
- platform/network/DataURLDecoder.h:
- 11:14 PM Changeset in webkit [261467] by
-
- 4 edits in trunk/Source
Add copy constructor and assignment operator to Ref<>
https://bugs.webkit.org/show_bug.cgi?id=211705
Reviewed by Sam Weinig.
Source/WebCore:
- dom/BoundaryPoint.h: As a test of the change to Ref, remove the explicit
copy and move constructors and assignment operators, relying on the defaults
instead, which are now exactly what we want.
Source/WTF:
As recently discussed in some WebKit bug patch review, we think that Ref and RefPtr
should have the same design, except for whether the value can be null. Ref had a
more ambitious approach to avoiding reference count churn, requiring a
call to copyRef to make any copying explicit, partly by analogy with raw C
references, which also can't be copied (but they can't be moved either). We choose
to change Ref to match RefPtr and to take the risk of additional churn. This makes
it easier to use Ref in contexts like collection classes and structures. An
alternative would be to go the other direction, and make RefPtr require a call to
copyRef: seems like an obviously worse option.
- wtf/Ref.h: Add the copy constructor and assignment operator.
These follow a similar pattern to the move constructor and assignment operator.
Also add a deprecation comment before copyRef, which we will eventually remove.
- 10:16 PM Changeset in webkit [261466] by
-
- 4 edits in trunk
Update user agent quirk for bankofamerica.com
https://bugs.webkit.org/show_bug.cgi?id=211700
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-10
Reviewed by Carlos Garcia Campos.
Source/WebCore:
The Mac platform quirk isn't working anymore. The Chrome quirk works.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresMacintoshPlatform):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
- 9:46 PM Changeset in webkit [261465] by
-
- 2 edits in trunk/Source/WTF
Use alias template to define
match_constness_tin Wtf/wtp/TypeCasts.h
https://bugs.webkit.org/show_bug.cgi?id=211698
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-05-10
Reviewed by Yusuke Suzuki.
- wtf/TypeCasts.h:
(WTF::downcast):
- 7:36 PM Changeset in webkit [261464] by
-
- 166 edits in trunk/Source/JavaScriptCore
[clang-tidy] Run modernize-use-nullptr over JSC
https://bugs.webkit.org/show_bug.cgi?id=211706
Reviewed by Darin Adler.
- API/APICallbackFunction.h:
- API/JSAPIGlobalObject.h:
- API/JSBase.cpp:
- API/JSCallbackObjectFunctions.h:
- API/JSClassRef.cpp:
- API/JSContextRef.cpp:
- API/JSObjectRef.cpp:
- API/JSScriptRef.cpp:
- API/JSValueRef.cpp:
- API/JSWeakObjectMapRefPrivate.cpp:
- API/tests/ExecutionTimeLimitTest.cpp:
- API/tests/PingPongStackOverflowTest.cpp:
- assembler/AbstractMacroAssembler.h:
- assembler/CPU.cpp:
- bytecode/CodeBlock.cpp:
- bytecode/DeleteByIdVariant.cpp:
- bytecode/GetByIdVariant.cpp:
- bytecode/InByIdVariant.cpp:
- bytecode/InlineCallFrame.cpp:
- bytecode/LazyOperandValueProfile.cpp:
- bytecode/PutByIdVariant.cpp:
- bytecode/ValueProfile.h:
- bytecode/ValueRecovery.cpp:
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
- debugger/DebuggerScope.h:
- dfg/DFGAbstractValue.cpp:
- dfg/DFGAdjacencyList.h:
- dfg/DFGArgumentPosition.h:
- dfg/DFGArrayifySlowPathGenerator.h:
- dfg/DFGAvailability.h:
- dfg/DFGByteCodeParser.cpp:
- dfg/DFGCFGSimplificationPhase.cpp:
- dfg/DFGCPSRethreadingPhase.cpp:
- dfg/DFGCompilationKey.h:
- dfg/DFGConstantFoldingPhase.cpp:
- dfg/DFGDisassembler.cpp:
- dfg/DFGDoubleFormatState.h:
- dfg/DFGEdge.h:
- dfg/DFGFixupPhase.cpp:
- dfg/DFGFrozenValue.cpp:
- dfg/DFGGenerationInfo.h:
- dfg/DFGGraph.h:
- dfg/DFGInPlaceAbstractState.cpp:
- dfg/DFGIntegerCheckCombiningPhase.cpp:
- dfg/DFGLazyJSValue.cpp:
- dfg/DFGNode.h:
- dfg/DFGOSREntrypointCreationPhase.cpp:
- dfg/DFGOSRExit.cpp:
- dfg/DFGOperations.cpp:
- dfg/DFGSilentRegisterSavePlan.h:
- dfg/DFGSpeculativeJIT.cpp:
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
- dfg/DFGStructureAbstractValue.cpp:
- dfg/DFGTransition.cpp:
- dfg/DFGTypeCheckHoistingPhase.cpp:
- dfg/DFGWorklist.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLAvailableRecovery.h:
- ftl/FTLExitValue.cpp:
- ftl/FTLFormattedValue.h:
- ftl/FTLJITCode.cpp:
- ftl/FTLLink.cpp:
- ftl/FTLLowerDFGToB3.cpp:
- ftl/FTLLoweredNodeValue.h:
- ftl/FTLOSREntry.cpp:
- ftl/FTLOSRExitCompiler.cpp:
- ftl/FTLTypedPointer.h:
- ftl/FTLValueFromBlock.h:
- ftl/FTLValueRange.h:
- heap/GCSegmentedArray.h:
- heap/Handle.h:
- heap/HandleSet.h:
- heap/HandleTypes.h:
- heap/HeapSnapshotBuilder.cpp:
- heap/MarkedBlockInlines.h:
- heap/Strong.h:
- heap/WeakImpl.h:
- heap/WeakInlines.h:
- heap/WeakSet.cpp:
- heap/WeakSet.h:
- interpreter/CallFrame.cpp:
- interpreter/CallFrame.h:
- interpreter/Interpreter.cpp:
- interpreter/ProtoCallFrame.h:
- interpreter/StackVisitor.cpp:
- interpreter/StackVisitor.h:
- jit/AssemblyHelpers.h:
- jit/CCallHelpers.h:
- jit/JITCode.cpp:
- jit/JITOperations.cpp:
- jit/Repatch.cpp:
- jit/ThunkGenerators.cpp:
- jsc.cpp:
- llint/LLIntSlowPaths.cpp:
- parser/ASTBuilder.h:
- parser/Lexer.cpp:
- parser/Lexer.h:
- parser/Nodes.cpp:
- parser/Nodes.h:
- parser/Parser.cpp:
- parser/Parser.h:
- parser/ParserArena.cpp:
- parser/ParserArena.h:
- parser/ParserFunctionInfo.h:
- parser/SyntaxChecker.h:
- parser/UnlinkedSourceCode.h:
- profiler/ProfilerBytecodeSequence.cpp:
- profiler/ProfilerCompilation.cpp:
- profiler/ProfilerDatabase.cpp:
- profiler/ProfilerOSRExitSite.cpp:
- profiler/ProfilerOriginStack.cpp:
- runtime/ArgList.h:
- runtime/ArrayPrototype.cpp:
- runtime/ClonedArguments.cpp:
- runtime/CommonSlowPaths.cpp:
- runtime/Completion.h:
- runtime/DataView.h:
- runtime/DatePrototype.cpp:
- runtime/DirectEvalExecutable.cpp:
- runtime/DumpContext.cpp:
- runtime/FunctionExecutable.cpp:
- runtime/IndirectEvalExecutable.cpp:
- runtime/JSArray.cpp:
- runtime/JSArrayBufferView.cpp:
- runtime/JSCJSValue.cpp:
- runtime/JSCJSValueInlines.h:
- runtime/JSCell.cpp:
- runtime/JSDataView.cpp:
- runtime/JSDestructibleObject.h:
- runtime/JSFunction.cpp:
- runtime/JSGlobalObject.cpp:
- runtime/JSGlobalObject.h:
- runtime/JSONObject.cpp:
- runtime/JSObject.cpp:
- runtime/JSObject.h:
- runtime/JSScope.cpp:
- runtime/JSScope.h:
- runtime/LiteralParser.cpp:
- runtime/OptionsList.h:
- runtime/PropertyDescriptor.cpp:
- runtime/PropertyMapHashTable.h:
- runtime/PropertySlot.h:
- runtime/PutPropertySlot.h:
- runtime/RegExpMatchesArray.h:
- runtime/RegExpPrototype.cpp:
- runtime/StringPrototype.cpp:
- runtime/Structure.cpp:
- runtime/Structure.h:
- runtime/TestRunnerUtils.cpp:
- runtime/TypedArrayType.cpp:
- runtime/VM.cpp:
- runtime/Watchdog.cpp:
- runtime/Watchdog.h:
- runtime/WriteBarrier.h:
- testRegExp.cpp:
- tools/JSDollarVM.cpp:
- wasm/WasmSlowPaths.cpp:
- yarr/RegularExpression.h:
- yarr/YarrInterpreter.cpp:
- yarr/YarrJIT.cpp:
- yarr/YarrJIT.h:
- yarr/YarrPattern.cpp:
- yarr/YarrPattern.h:
- 7:08 PM Changeset in webkit [261463] by
-
- 2 edits in trunk/Source/WebKitLegacy/win
[WinCairo][WK1] requestAnimationFrame doesn't work since r261113
https://bugs.webkit.org/show_bug.cgi?id=211702
Reviewed by Darin Adler.
Since r261113 (Bug 204713), WinCairo WK1 is failing some rAF tests
even though AppleWin isn't.
WinCairo also should do m_page->updateRendering() in
WebView::flushPendingGraphicsLayerChangesSoon as well as AppleWin.
- WebView.cpp:
(WebView::flushPendingGraphicsLayerChangesSoon): Call
updateRendering.
- 4:56 PM Changeset in webkit [261462] by
-
- 11 edits in trunk
Add ENABLE_PERIODIC_MEMORY_MONITOR flag.
https://bugs.webkit.org/show_bug.cgi?id=211704
Reviewed by Yusuke Suzuki.
.:
Define ENABLE_PERIODIC_MEMORY_MONITOR flags in specific platform's options.
Enable it for PlayStation port.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WebKit:
No new tests because there's no behavior change.
Replace PLATFORM() macros with ENABLE() macro.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WTF:
Define ENABLE_PERIODIC_MEMORY_MONITOR flags in specific platform file.
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
- 3:37 PM Changeset in webkit [261461] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r261270): Broke build with python3
https://bugs.webkit.org/show_bug.cgi?id=211699
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-10
Reviewed by Yusuke Suzuki.
Remove the problematic print statement. It causes the script to fail. If fixed, it spams the
build output. We only print messages during the build when there are problems to be fixed.
- Scripts/generate-message-receiver.py:
(main):
- 2:35 PM Changeset in webkit [261460] by
-
- 14 edits in trunk/Source
Remove now-unneeded HAVE(CORE_VIDEO)
https://bugs.webkit.org/show_bug.cgi?id=211677
Reviewed by Dan Bernstein.
Source/WebCore:
- page/cocoa/MemoryReleaseCocoa.mm:
- platform/cocoa/CoreVideoSoftLink.cpp: Remove HAVE(CORE_VIDEO).
- platform/cocoa/CoreVideoSoftLink.h: Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): Ditto.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::getRGBAImageData const): Ditto.
- platform/graphics/cv/PixelBufferConformerCV.cpp: Ditto.
- platform/graphics/cv/PixelBufferConformerCV.h: Ditto.
- platform/graphics/cv/TextureCacheCV.h: Ditto.
- platform/graphics/cv/TextureCacheCV.mm: Ditto.
- platform/graphics/cv/VideoTextureCopierCV.cpp: Ditto.
- platform/graphics/cv/VideoTextureCopierCV.h: Ditto.
Source/WTF:
- wtf/PlatformHave.h: Remove HAVE_CORE_VIDEO.
- 2:21 PM Changeset in webkit [261459] by
-
- 2 edits in trunk/Source/WebCore
Tighten up logic in DocumentTimelinesController::updateAnimationsAndSendEvents
https://bugs.webkit.org/show_bug.cgi?id=211668
Reviewed by Antoine Quint.
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
Use Ref instead of RefPtr. Use Ref even in timelinesToUpdate; no harm in doing
a little bit of extra ref'ing. Use copyToVector when iterating relevantAnimations
since it could be a problem if the current animation was removed from the
ListHashSet while we are iterating it and there is no obvious reason that can't
happen. Use makeRef instead of makeRefPtr. Take advantage of the behavior of
the Optional operator<, which already treats nullopt as less than any non-nullopt
value, and remove unnecessary checks that weere doing the same thing explicitly.
This fixes a mistake where we were returning true when both are nullopt, which
could harm the stability of the sort, in theory. Add a null check of the timeline
when iterating completedTransitions, since there is no obvious guarantee they
could not have been removed as a side effect earlier.
- 2:21 PM Changeset in webkit [261458] by
-
- 2 edits in trunk/Source/WebCore
Use makeReversedRange and get rid of one-off ReverseView
https://bugs.webkit.org/show_bug.cgi?id=211675
Reviewed by Sam Weinig.
- editing/markup.cpp:
(WebCore::ReverseView): Deleted.
(WebCore::StyledMarkupAccumulator::takeResults): Use makeReversedRange.
- 12:28 PM Changeset in webkit [261457] by
-
- 25 edits in trunk/Source
Clicking a tel:// link on iPad with a trackpad presents different UI than tapping on it
https://bugs.webkit.org/show_bug.cgi?id=211686
<rdar://problem/57941589>
Reviewed by Wenson Hsieh.
Source/WebCore:
- dom/MouseRelatedEvent.h:
- editing/cocoa/DataDetection.h:
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::canPresentDataDetectorsUIForElement):
(WebCore::DataDetection::shouldCancelDefaultAction): Deleted.
Rename shouldCancelDefaultAction to canPresentDataDetectorsUIForElement.
This bit indicates whether a given element should invoke DD UI instead of
doing its default action, so either name is OK, but it feels better to
have it in the affirmative direction.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
Determine if tapping on an anchor should invoke DataDetectors UI instead
of performing the default action, and short-circuit if that is possible.
- loader/EmptyClients.h:
- page/ChromeClient.h:
Source/WebKit:
Previously, iOS WebKit had code in handleTap, handleTwoFingerTapAtPoint, and commitPotentialTap,
which introspected the hit element /before/ dispatching the tap (or synthetic click) to the DOM,
short circuiting all normal event handling machinery in order to prevent the default action
and present the Data Detectors UI for the given link.
There's one immediate problem with this, which is that there is no similar code in the direct
click event handler path, which we now use for trackpad/mouse input on iPad. There's also a
secondary problem (which we have not seen in practice), which is that pages cannot preventDefault
to avoid launching the Data Detectors UI on a link, like they could to prevent an ordinary
link from being followed.
In order to resolve both issues and reduce duplication of logic, move the code that introspects
the element and invokes Data Detectors UI from high-level WebKit event dispatch code (where it
doesn't really belong) down to WebCore's default click event handler for anchors, right next to
the code that would ordinarily cause a navigation. This way, no matter how we get here, whether
by synthetic click or real click, we'll invoke the Data Detectors UI.
One alternative considered at length: we could actually let the navigation happen, and instead
handle the switch in navigation policy code, but there are a few reasons that did not seem ideal:
1) We'd need to plumb platform-specific data structures through a ton of FrameLoader code.
2) Clients often block non-HTTP(S) navigations, so in order to keep the feature functional,
we'd have to disregard the client's policy decision, defeating much of the purpose of making
use of the navigation mechanism in the first place.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showDataDetectorsUIForPositionInformation):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::showDataDetectorsUIForPositionInformation):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::showDataDetectorsUIForElement):
Plumb showDataDetectorsUIForPositionInformation from iOS WebKit's ChromeClient
implementation all the way to WKContentView.
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showDataDetectorsUIForPositionInformation:]):
(-[WKActionSheetAssistant contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKActionSheetAssistant contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
(-[WKActionSheetAssistant showDataDetectorsSheet]): Deleted.
Make it possible to push InteractionInformationAtPosition into WKActionSheetAssistant,
instead of having it always pull a fresh one upon invocation, so that we can use the
position information passed along with the showDataDetectorsUIForPositionInformation message.
(-[WKActionSheetAssistant _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]):
(-[WKActionSheetAssistant suggestedActionsForContextMenuWithPositionInformation:]):
Fix an existing bug where Data Detectors context menus would show extra default actions,
by moving our implementation of the -_contextMenuInteraction:overrideSuggestedActionsForConfiguration:
delegate here, sharing it with WKContentViewInteraction.
In a future patch, we should reconsider having three separate UIContextMenuInteractions.
Also, remove the contextMenuPresentationLocationForActionSheetAssistant: delegate,
since it will be wrong in the case of pushed-in position information, and instead
use the position information's original hit test point.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showDataDetectorsUI]):
(-[WKContentView _showDataDetectorsUIForPositionInformation:]):
(-[WKContentView _actionForLongPressFromPositionInformation:]):
(-[WKContentView _didNotHandleTapAsClick:]):
(-[WKContentView dataDetectionContextForPositionInformation:]):
(-[WKContentView dataDetectionContextForActionSheetAssistant:positionInformation:]):
(-[WKContentView _showDataDetectorsSheet]): Deleted.
(-[WKContentView currentPositionInformation]): Deleted.
(-[WKContentView dataDetectionContextForActionSheetAssistant:]): Deleted.
Instead of exposing an unnecessary -currentPositionInformation getter on WKActionSheetAssistant,
provide it as an argument to the WKActionSheetAssistantDelegate methods that actually need it.
(-[WKContentView contextMenuPresentationLocationForActionSheetAssistant:]): Deleted.
(-[WKContentView _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]):
Adopt WKActionSheetAssistant's suggestedActions mechanism so we can share code.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]):
(-[WKPDFView dataDetectionContextForActionSheetAssistant:positionInformation:]):
(-[WKPDFView dataDetectionContextForActionSheetAssistant:]): Deleted.
Adapt to some WKActionSheetAssistantDelegate changes.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleTap):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTap):
Remove the aforementioned short-circuiting paths for Data Detectors links.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebChromeClientIOS.h:
- 3:17 AM Changeset in webkit [261456] by
-
- 3 edits in trunk/LayoutTests
[GTK] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=211694
Unreviewed gardening.
Gardening of flaky failures.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 12:26 AM Changeset in webkit [261455] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
[ iOS wk2 and Mac wk2 ] imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209281
Patch by Rob Buis <rbuis@igalia.com> on 2020-05-10
Reviewed by Darin Adler.
Since it is difficult to estimate when the revalidations are received
in relation to the frame loads, add two polling loops to make sure
revalidations have been received before proceding with the next
test step. This is similar to what fetch.html does.
- web-platform-tests/fetch/stale-while-revalidate/frame-removal.html:
- web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py:
(main):