Timeline
Feb 4, 2019:
- 11:48 PM Changeset in webkit [240967] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'classes.includes')
https://bugs.webkit.org/show_bug.cgi?id=194280
<rdar://problem/47811159>
Reviewed by Matt Baker.
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles):
Add a fallback value in case theclassattribute isn't specified for the selected node.
- 10:51 PM Changeset in webkit [240966] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, add missing exception checks after r240637
https://bugs.webkit.org/show_bug.cgi?id=193546
- tools/JSDollarVM.cpp:
(JSC::functionShadowChickenFunctionsOnStack):
- 10:32 PM Changeset in webkit [240965] by
-
- 70 edits1 copy in trunk/Source
[JSC] Shrink size of VM by lazily allocating IsoSubspaces for non-common types
https://bugs.webkit.org/show_bug.cgi?id=193993
Reviewed by Keith Miller.
Source/JavaScriptCore:
JSC::VM has a lot of IsoSubspaces, and each takes 504B. This unnecessarily makes VM so large.
And some of them are rarely used. We should allocate it lazily.
In this patch, we make some
IsoSubspacesstd::unique_ptr<IsoSubspace>. And we add ensureXXXSpace
functions which allocate IsoSubspaces lazily. This function is used by subspaceFor<> in each class.
And we also add subspaceForConcurrently<> function, which is called from concurrent JIT tiers. This
returns nullptr if the subspace is not allocated yet. JSCell::subspaceFor now takes second template
parameter which tells the function whether subspaceFor is concurrently done. If the IsoSubspace is
lazily created, we may return nullptr for the concurrent access. We ensure the space's initialization
by using WTF::storeStoreFence when lazily allocating it.
In GC's constraint solving, we may touch these lazily allocated spaces. At that time, we check the
existence of the space before touching this. This is not racy because the main thread is stopped when
the constraint solving is working.
This changes sizeof(VM) from 64736 to 56472.
Another interesting thing is that we removed
PreventCollectionScope preventCollectionScope(heap);in
Subspace::initialize. This is really dangerous API since it easily causes dead-lock between the
collector and the mutator if IsoSubspace is dynamically created. We do want to make IsoSubspaces
dynamically-created ones since the requirement of the pre-allocation poses a scalability problem
of IsoSubspace adoption because IsoSubspace is large. Registered Subspace is only touched in the
EndPhase, and the peripheries should be stopped when running EndPhase. Thus, as long as the main thread
can run this IsoSubspace code, the collector is never EndPhase. So this is safe.
- API/JSCallbackFunction.h:
- API/ObjCCallbackFunction.h:
(JSC::ObjCCallbackFunction::subspaceFor):
- API/glib/JSCCallbackFunction.h:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::finalizeUnconditionally):
- bytecode/CodeBlock.h:
- bytecode/EvalCodeBlock.h:
- bytecode/ExecutableToCodeBlockEdge.h:
- bytecode/FunctionCodeBlock.h:
- bytecode/ModuleProgramCodeBlock.h:
- bytecode/ProgramCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileNewObject):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedCell):
- heap/Heap.cpp:
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::addCoreConstraints):
- heap/Subspace.cpp:
(JSC::Subspace::initialize):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSizedCell):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_object):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_new_object):
- runtime/DirectArguments.h:
- runtime/DirectEvalExecutable.h:
- runtime/ErrorInstance.h:
(JSC::ErrorInstance::subspaceFor):
- runtime/ExecutableBase.h:
- runtime/FunctionExecutable.h:
- runtime/IndirectEvalExecutable.h:
- runtime/InferredValue.cpp:
(JSC::InferredValue::visitChildren):
- runtime/InferredValue.h:
- runtime/InferredValueInlines.h:
(JSC::InferredValue::finalizeUnconditionally):
- runtime/InternalFunction.h:
- runtime/JSAsyncFunction.h:
- runtime/JSAsyncGeneratorFunction.h:
- runtime/JSBoundFunction.h:
- runtime/JSCell.h:
(JSC::subspaceFor):
(JSC::subspaceForConcurrently):
- runtime/JSCellInlines.h:
(JSC::allocatorForNonVirtualConcurrently):
- runtime/JSCustomGetterSetterFunction.h:
- runtime/JSDestructibleObject.h:
- runtime/JSFunction.h:
- runtime/JSGeneratorFunction.h:
- runtime/JSImmutableButterfly.h:
- runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::subspaceFor):
- runtime/JSNativeStdFunction.h:
- runtime/JSSegmentedVariableObject.h:
- runtime/JSString.h:
- runtime/ModuleProgramExecutable.h:
- runtime/NativeExecutable.h:
- runtime/ProgramExecutable.h:
- runtime/PropertyMapHashTable.h:
- runtime/ProxyRevoke.h:
- runtime/ScopedArguments.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):
- runtime/Structure.h:
- runtime/StructureRareData.h:
- runtime/SubspaceAccess.h: Copied from Source/JavaScriptCore/runtime/InferredValueInlines.h.
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
(JSC::VM::SpaceAndSet::SpaceAndSet):
(JSC::VM::SpaceAndSet::setFor):
(JSC::VM::forEachScriptExecutableSpace):
(JSC::VM::SpaceAndFinalizerSet::SpaceAndFinalizerSet): Deleted.
(JSC::VM::SpaceAndFinalizerSet::finalizerSetFor): Deleted.
(JSC::VM::ScriptExecutableSpaceAndSet::ScriptExecutableSpaceAndSet): Deleted.
(JSC::VM::ScriptExecutableSpaceAndSet::clearableCodeSetFor): Deleted.
(JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::UnlinkedFunctionExecutableSpaceAndSet): Deleted.
(JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::clearableCodeSetFor): Deleted.
- runtime/WeakMapImpl.h:
(JSC::WeakMapImpl::subspaceFor):
- wasm/js/JSWebAssemblyCodeBlock.h:
- wasm/js/JSWebAssemblyMemory.h:
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyWrapperFunction.h:
Source/WebCore:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- bridge/runtime_method.h:
Source/WebKit:
- WebProcess/Plugins/Netscape/JSNPMethod.h:
- WebProcess/Plugins/Netscape/JSNPObject.h:
- 10:19 PM Changeset in webkit [240964] by
-
- 4 edits35 adds in trunk/LayoutTests
[iPad] Initial test gardening (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=193767
<rdar://problem/47515175>
Unreviewed test gardening.
A number of tests need to be re-baselined when run on iPad because of the larger screen.
- fast/canvas/canvas-too-large-to-draw.html: iOS userAgent regex should match iPhones and iPads.
- fast/events/touch/ios/target-taller-than-view.html: Move event listener since tabpPointY is the value we should compare against.
- fast/visual-viewport/ios/min-scale-greater-than-one.html: expectedTop depends on the screen size of the device.
- platform/ipad/fast/events: Added.
- platform/ipad/fast/events/ios: Added.
- platform/ipad/fast/events/ios/keyboard-should-not-trigger-resize-expected.txt: Added.
- platform/ipad/fast/events/ios/rotation: Added.
- platform/ipad/fast/events/ios/rotation/zz-no-rotation-expected.txt: Added.
- platform/ipad/fast/events/touch: Added.
- platform/ipad/fast/events/touch/ios: Added.
- platform/ipad/fast/events/touch/ios/target-taller-than-view-expected.txt: Added.
- platform/ipad/fast/scrolling: Added.
- platform/ipad/fast/scrolling/ios: Added.
- platform/ipad/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Added.
- platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Added.
- platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Added.
- platform/ipad/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Added.
- platform/ipad/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Added.
- platform/ipad/fast/scrolling/ios/touch-stacking-expected.txt: Added.
- platform/ipad/fast/viewport/ios: Added.
- platform/ipad/fast/viewport/ios/device-width-viewport-after-changing-view-scale-expected.txt: Added.
- platform/ipad/fast/viewport/ios/initial-scale-after-changing-view-scale-expected.txt: Added.
- platform/ipad/fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt: Added.
- platform/ipad/fast/viewport/ios/width-is-device-width-expected.txt: Added.
- platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt: Added.
- platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Added.
- platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-expected.txt: Added.
- platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt: Added.
- platform/ipad/platform: Added.
- platform/ipad/platform/ios: Added.
- platform/ipad/platform/ios/ios: Added.
- platform/ipad/platform/ios/ios/fast: Added.
- platform/ipad/platform/ios/ios/fast/text: Added.
- platform/ipad/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Added.
- platform/ipad/scrollingcoordinator: Added.
- platform/ipad/scrollingcoordinator/ios: Added.
- platform/ipad/scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt: Added.
- platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Added.
- 9:30 PM BuildingCairoOnWindows edited by
- (diff)
- 8:34 PM Changeset in webkit [240963] by
-
- 10 edits4 moves in trunk/Source
Move some macOS/iOS scrolling code into the scrolling/cocoa directory
https://bugs.webkit.org/show_bug.cgi?id=194245
Reviewed by Zalan Bujtas.
Source/WebCore:
ScrollingTreeFixedNode and ScrollingTreeStickyNode are used on iOS and macOS, so move them to the cocoa
directory.
Standardize on the ordering of ENABLE(ASYNC_SCROLLING) && PLATFORM(MAC).
Stop building ScrollingThread for iOS (it's never used), and stub out some functions so things build.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::initializeRunLoop):
(WebCore::ScrollingThread::wakeUpRunLoop):
(WebCore::ScrollingThread::threadRunLoopSourceCallback):
- page/scrolling/cocoa/ScrollingTreeFixedNode.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm.
- page/scrolling/cocoa/ScrollingTreeStickyNode.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h.
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.mm.
- page/scrolling/mac/ScrollingThreadMac.mm:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
Source/WebKit:
Use PLATFORM(MAC), not !PLATFORM(IOS_FAMILY).
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- 8:04 PM Changeset in webkit [240962] by
-
- 21 edits7 adds in trunk
[GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
https://bugs.webkit.org/show_bug.cgi?id=174816
Patch by Ms2ger <Ms2ger@igalia.com> on 2019-02-04
Reviewed by Michael Catanzaro.
Source/WebCore:
Tests: enabled fast/url/user-visible/.
- testing/Internals.cpp:
(WebCore::Internals::userVisibleString): Enable method on all platforms.
Source/WebKit:
Add webkit_uri_for_display for GTK and WPE.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitURIUtilities.cpp: Added.
(webkit_uri_for_display):
- UIProcess/API/gtk/WebKitURIUtilities.h: Added.
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/webkit2.h:
- UIProcess/API/wpe/WebKitURIUtilities.h: Added.
- UIProcess/API/wpe/docs/wpe-0.1-sections.txt:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
- UIProcess/API/wpe/webkit.h:
Source/WTF:
Translate userVisibleString and dependent code into platform-neutral C++
in wtf/URLHelpers.{h,cpp}.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/URLHelpers.cpp: Added.
(WTF::URLHelpers::loadIDNScriptWhiteList):
(WTF::URLHelpers::isArmenianLookalikeCharacter):
(WTF::URLHelpers::isArmenianScriptCharacter):
(WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::whiteListIDNScript):
(WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
(WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
(WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
(WTF::URLHelpers::isRussianDomainNameCharacter):
(WTF::URLHelpers::allCharactersAllowedByTLDRules):
(WTF::URLHelpers::mapHostName):
(WTF::URLHelpers::collectRangesThatNeedMapping):
(WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
(WTF::URLHelpers::applyHostNameFunctionToURLString):
(WTF::URLHelpers::mapHostNames):
(WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
(WTF::URLHelpers::toNormalizationFormC):
(WTF::URLHelpers::userVisibleURL):
- wtf/URLHelpers.h: Added.
- wtf/cocoa/NSURLExtras.mm:
(WTF::URLHelpers::loadIDNScriptWhiteList):
(WTF::decodePercentEscapes):
(WTF::decodeHostName):
(WTF::encodeHostName):
(WTF::URLWithUserTypedString):
(WTF::userVisibleString):
Tools:
Add tests for webkit_uri_for_display().
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitURIUtilities.cpp: Added.
(testURIForDisplayUnaffected):
(testURIForDisplayAffected):
(beforeAll):
(afterAll):
- TestWebKitAPI/glib/CMakeLists.txt:
LayoutTests:
- TestExpectations: Enable fast/url/user-visible/.
- 7:24 PM Changeset in webkit [240961] by
-
- 2 edits1 add in trunk/Source/ThirdParty/libwebrtc
vp8e_mr_alloc_mem() leaks LOWER_RES_FRAME_INFO if second memory allocation fails
<https://webkit.org/b/194265>
Reviewed by Youenn Fablet.
- Source/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:
(vp8e_mr_alloc_mem):
- Initialize
resto VPX_CODEC_OK instead of 0. - Return early if first calloc() fails instead of trying the
second calloc(). The function would crash dereferencing
nullptr in
shared_mem_loc->mb_infootherwise. - Call free(shared_mem_loc) if the second call to calloc() fails. This fixes the leak.
- WebKit/0003-libwebrtc-fix-vp8e_mr_alloc_mem-leak.diff: Add.
- 7:23 PM Changeset in webkit [240960] by
-
- 2 edits in trunk/Source/JavaScriptCore
Change llint operand macros to inline functions
https://bugs.webkit.org/show_bug.cgi?id=194248
Reviewed by Mark Lam.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getNonConstantOperand):
(JSC::LLInt::getOperand):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::getByVal):
(JSC::LLInt::genericCall):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::commonCallEval):
- 5:36 PM Changeset in webkit [240959] by
-
- 3 edits1 add in trunk
when lowering AssertNotEmpty, create the value before creating the patchpoint
https://bugs.webkit.org/show_bug.cgi?id=194231
Reviewed by Saam Barati.
JSTests:
This test is painfully fragile: it tries to test that AssertNotEmpty on a constant produces valid B3 IR.
The problem is that AssertNotEmpty is only created by DFGConstantFolding when it can simplify a CheckStructure, and constant folding is a bit capricious (https://bugs.webkit.org/show_bug.cgi?id=133947)
So even tiny changes to this test can change the path code taken.
- stress/assert-not-empty.js: Added.
(foo):
Source/JavaScriptCore:
This is a very simple change: we should never generate B3 IR where an instruction depends on a value that comes later in the instruction stream.
AssertNotEmpty was generating some such IR, it probably slipped through until now because it is a rather rare and tricky instruction to generate.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty):
- 5:34 PM Changeset in webkit [240958] by
-
- 2 edits in trunk/Source/WebCore
[curl] ASSERTION FAILED: !m_didNotifyResponse m_multipartHandle https://bugs.webkit.org/show_bug.cgi?id=190895
Reviewed by Ross Kirsling.
An assertion was failing in CurlRequest::invokeDidReceiveResponse
because DidReceiveResponse was already dispatched. This condition
was met if CurlRequestScheduler::completeTransfer is called while
waiting for the reply for the first DidReceiveResponse.
No new tests, covered by existing tests.
- platform/network/curl/CurlRequest.h:
(WebCore::CurlRequest::needToInvokeDidReceiveResponse const):
Return true if m_didNotifyResponse is false disregard to
m_didReturnFromNotify.
- 5:31 PM Changeset in webkit [240957] by
-
- 2 edits in trunk/LayoutTests
[iOS Simulator] pageoverlay/overlay tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=153337
Unreviewed test gardening.
Patch by Shawn Roberts <Shawn Roberts> on 2019-02-04
- platform/ios/TestExpectations:
- 5:31 PM Changeset in webkit [240956] by
-
- 5 edits3 adds in trunk/Source/WebKit
Move XPCService main to a shared file calling a C function
https://bugs.webkit.org/show_bug.cgi?id=194256
Reviewed by Brady Eidson.
This not only reduces a few kilobytes of duplicated binary from the XPCService executables,
It will allow me to introduce a new kind of executable which will need to parse argv and call a different C function.
This is similar to r236075 but more general.
- Shared/API/Cocoa/WKMain.h: Added.
- Shared/API/Cocoa/WKMain.mm: Added.
(WKXPCServiceMain):
- Shared/EntryPointUtilities/Cocoa/AuxiliaryProcessMain.cpp: Added.
(main):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(main): Deleted.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- 5:30 PM Changeset in webkit [240955] by
-
- 32 edits in trunk/Source/WebKit
Make MessageSender functions const
https://bugs.webkit.org/show_bug.cgi?id=194247
Reviewed by Brady Eidson.
- NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::messageSenderConnection const):
(WebKit::Download::messageSenderDestinationID const):
(WebKit::Download::messageSenderConnection): Deleted.
(WebKit::Download::messageSenderDestinationID): Deleted.
- NetworkProcess/Downloads/Download.h:
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::messageSenderConnection const):
(WebKit::PendingDownload::messageSenderDestinationID const):
(WebKit::PendingDownload::messageSenderConnection): Deleted.
(WebKit::PendingDownload::messageSenderDestinationID): Deleted.
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::messageSenderConnection const):
(WebKit::WebIDBConnectionToClient::messageSenderConnection): Deleted.
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::messageSenderConnection const):
(WebKit::NetworkResourceLoader::messageSenderConnection): Deleted.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/NetworkSocketStream.cpp:
(WebKit::NetworkSocketStream::messageSenderConnection const):
(WebKit::NetworkSocketStream::messageSenderDestinationID const):
(WebKit::NetworkSocketStream::messageSenderConnection): Deleted.
(WebKit::NetworkSocketStream::messageSenderDestinationID): Deleted.
- NetworkProcess/NetworkSocketStream.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::messageSenderConnection const):
(WebKit::WebSWServerToContextConnection::messageSenderDestinationID const):
(WebKit::WebSWServerToContextConnection::messageSenderConnection): Deleted.
(WebKit::WebSWServerToContextConnection::messageSenderDestinationID): Deleted.
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- Platform/IPC/MessageSender.h:
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::messageSenderConnection const):
(WebKit::AuxiliaryProcess::messageSenderDestinationID const):
(WebKit::AuxiliaryProcess::messageSenderConnection): Deleted.
(WebKit::AuxiliaryProcess::messageSenderDestinationID): Deleted.
- Shared/AuxiliaryProcess.h:
- UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::messageSenderConnection const):
(WebKit::WebConnectionToWebProcess::messageSenderDestinationID const):
(WebKit::WebConnectionToWebProcess::messageSenderConnection): Deleted.
(WebKit::WebConnectionToWebProcess::messageSenderDestinationID): Deleted.
- UIProcess/WebConnectionToWebProcess.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::messageSenderConnection const):
(WebKit::WebPageProxy::messageSenderDestinationID const):
(WebKit::WebPageProxy::messageSenderConnection): Deleted.
(WebKit::WebPageProxy::messageSenderDestinationID): Deleted.
- UIProcess/WebPageProxy.h:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::messageSenderConnection const):
(WebKit::WebIDBConnectionToServer::messageSenderConnection): Deleted.
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::messageSenderConnection const):
(WebKit::WebResourceLoader::messageSenderDestinationID const):
(WebKit::WebResourceLoader::messageSenderConnection): Deleted.
(WebKit::WebResourceLoader::messageSenderDestinationID): Deleted.
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebSocketStream.cpp:
(WebKit::WebSocketStream::messageSenderConnection const):
(WebKit::WebSocketStream::messageSenderDestinationID const):
(WebKit::WebSocketStream::messageSenderConnection): Deleted.
(WebKit::WebSocketStream::messageSenderDestinationID): Deleted.
- WebProcess/Network/WebSocketStream.h:
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::messageSenderConnection const):
(WebKit::WebConnectionToUIProcess::messageSenderDestinationID const):
(WebKit::WebConnectionToUIProcess::messageSenderConnection): Deleted.
(WebKit::WebConnectionToUIProcess::messageSenderDestinationID): Deleted.
- WebProcess/WebConnectionToUIProcess.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::messageSenderConnection const):
(WebKit::WebPage::messageSenderDestinationID const):
(WebKit::WebPage::messageSenderConnection): Deleted.
(WebKit::WebPage::messageSenderDestinationID): Deleted.
- WebProcess/WebPage/WebPage.h:
- 5:27 PM Changeset in webkit [240954] by
-
- 9 edits in trunk/Source/WebKit
Take additional process assertion while downloading.
<rdar://problem/47741356> and https://bugs.webkit.org/show_bug.cgi?id=194239
Reviewed by Chris Dumez.
When the first download starts, grab this new assertion.
When the last download ends, release it.
- Configurations/Network-iOS.entitlements:
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::dataTaskBecameDownloadTask):
(WebKit::DownloadManager::downloadFinished):
- NetworkProcess/Downloads/DownloadManager.h:
- Platform/spi/ios/AssertionServicesSPI.h:
- UIProcess/ProcessAssertion.cpp:
(WebKit::ProcessAssertion::ProcessAssertion):
- UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::ProcessAssertion):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didSetAssertionState):
- UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::flagsForState):
(WebKit::reasonForState):
(WebKit::ProcessAssertion::ProcessAssertion):
- 5:16 PM Changeset in webkit [240953] by
-
- 2 edits in trunk/Tools
webkitpy: Precedence of booted devices should match precedence in DEFAULT_DEVICE_TYPES
https://bugs.webkit.org/show_bug.cgi?id=194158
<rdar://problem/47737268>
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/port/device_port.py:
(DevicePort.supported_device_types): Sort supported device types by the DEFAULT_DEVICE_TYPES.
- 5:11 PM Changeset in webkit [240952] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Resources: missing resource data for document on reload
https://bugs.webkit.org/show_bug.cgi?id=194243
<rdar://problem/47559021>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WI.ResourceDetailsSidebarPanel.prototype.set resource):
(WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
- UserInterface/Base/Object.js:
(WI.Object.removeEventListener):
Drive-by: there's no need to iterate over the entire table to check ifthisObjectexists,
as that is handled for us byListMultimap, which we later call anyways.
- 5:09 PM Changeset in webkit [240951] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] ExecutableToCodeBlockEdge should be smaller
https://bugs.webkit.org/show_bug.cgi?id=194244
Reviewed by Michael Saboff.
ExecutableToCodeBlockEdge is allocated so many times. However its memory layout is not efficient.
sizeof(ExecutableToCodeBlockEdge) is 24bytes, but it discards 7bytes due to one bool m_isActive flag.
Because our size classes are rounded by 16bytes, ExecutableToCodeBlockEdge takes 32bytes. So, half of
it is wasted. We should fit it into 16bytes so that we can efficiently allocate it.
In this patch, we leverages TypeInfoMayBePrototype bit in JSTypeInfo. It is a bit special TypeInfo bit
since this is per-cell bit. We rename this to TypeInfoPerCellBit, and use it as am_isActivemark in
ExecutableToCodeBlockEdge. In JSObject subclasses, we use it as MayBePrototype flag.
Since this flag is not changed in CAS style, we must not change this in concurrent threads. This is OK
for ExecutableToCodeBlockEdge's m_isActive flag since this is touched on the main thread (ScriptExecutable::installCode
does not touch it if it is called in non-main threads).
- bytecode/ExecutableToCodeBlockEdge.cpp:
(JSC::ExecutableToCodeBlockEdge::finishCreation):
(JSC::ExecutableToCodeBlockEdge::visitChildren):
(JSC::ExecutableToCodeBlockEdge::activate):
(JSC::ExecutableToCodeBlockEdge::deactivate):
(JSC::ExecutableToCodeBlockEdge::isActive const):
- bytecode/ExecutableToCodeBlockEdge.h:
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::perCellBit const):
(JSC::JSCell::setPerCellBit):
(JSC::JSCell::mayBePrototype const): Deleted.
(JSC::JSCell::didBecomePrototype): Deleted.
- runtime/JSObject.cpp:
(JSC::JSObject::setPrototypeDirect):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::mayBePrototype const):
(JSC::JSObject::didBecomePrototype):
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::perCellBit):
(JSC::TypeInfo::mergeInlineTypeFlags):
(JSC::TypeInfo::mayBePrototype): Deleted.
- 5:08 PM Changeset in webkit [240950] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: Resources: WI.TreeOutline assertions when refreshing the page
https://bugs.webkit.org/show_bug.cgi?id=194242
<rdar://problem/47802027>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/FolderizedTreeElement.js:
(WI.FolderizedTreeElement.prototype.removeChildren):
FolderTreeElements are removed by the base class call to removeChildren.
CallingremoveChildrenfor detached TreeElements is unnecessary.
- 4:47 PM Changeset in webkit [240949] by
-
- 14 edits3 adds in trunk
[CG] Enable setAdditionalSupportedImageTypes for WK1
https://bugs.webkit.org/show_bug.cgi?id=194190
Reviewed by Tim Horton.
Source/WebCore:
Move the function webCoreStringVectorFromNSStringArray from WebKit to
WebCore so it can be used by both WebKit and WebKitLegacy.
- platform/mac/StringUtilities.h:
- platform/mac/StringUtilities.mm:
(WebCore::webCoreStringVectorFromNSStringArray):
Source/WebKit:
Move the function webCoreStringVectorFromNSStringArray from WebKit to
WebCore so it can be used by both WebKit and WebKitLegacy.
- Platform/mac/StringUtilities.h:
- Platform/mac/StringUtilities.mm:
(WebKit::webCoreStringVectorFromNSStringArray): Deleted.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
Source/WebKitLegacy/mac:
- Define the preferences key AdditionalSupportedImageTypes.
- Add additionalSupportedImageTypes as a private preference property.
- Define the setter and the getter of the property.
- Add function to convert from an id to an array of strings.
- Call WebCore::setAdditionalSupportedImageTypes when preferences change.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences _stringArrayValueForKey:]):
(-[WebPreferences _setStringArrayValueForKey:forKey:]):
(-[WebPreferences setAdditionalSupportedImageTypes:]):
(-[WebPreferences additionalSupportedImageTypes]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Tools:
Add a test similar to the one under WebKit Cocoa but make it create a
WebView instead of a WKWebView.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/100x100-red.tga: Added.
- TestWebKitAPI/Tests/mac/AdditionalSupportedImageTypes.html: Added.
- TestWebKitAPI/Tests/mac/AdditionalSupportedImageTypes.mm: Added.
(-[AdditionalSupportedImageTypesTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI::runTest):
(TestWebKitAPI::TEST):
- 4:28 PM Changeset in webkit [240948] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Add WebView SPI to temporarily force light or dark appearance on a page.
https://bugs.webkit.org/show_bug.cgi?id=194230
Reviewed by Tim Horton.
- WebView/WebView.mm:
(-[WebView _useDarkAppearance:]): Added.
(-[WebView _setUseDarkAppearance:]): Added.
- WebView/WebViewPrivate.h:
- 3:32 PM Changeset in webkit [240947] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: clicking a selected call frame doesn't re-scroll
https://bugs.webkit.org/show_bug.cgi?id=194169
<rdar://problem/47743864>
Reviewed by Devin Rousso.
- UserInterface/Views/TreeOutline.js:
(WI.TreeOutline.prototype._handleMouseDown):
Add a special case for a single-selection TreeOutline with
allowsRepeatSelection enabled. Since the element is already
selected, bypass the SelectionCongroller and dispatch an
event with event.data.selectedByUser set to true.
- 3:30 PM Changeset in webkit [240946] by
-
- 8 edits2 adds in trunk
Web Inspector: Styles: fix race conditions when editing
https://bugs.webkit.org/show_bug.cgi?id=192739
<rdar://problem/46752925>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Editing CSS property in the style editor syncronously updates CSSStyleDeclaration on the front-end
and asyncronously updates the backend by calling CSSAgent.setStyleText. After the new style text is applied
on the backend, CSSStyleDeclaration (on the front-end) gets updated.
Unsure there's no race conditions by introducing
_updatesInProgressCount:
- Increment it before calling CSSAgent.setStyleText.
- Decrement it after CSSAgent.setStyleText is finished.
Prevent updates of CSSStyleDeclaration when _updatesInProgressCount isn't 0.
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype._updateOwnerStyleText):
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration):
(WI.CSSStyleDeclaration.prototype.set text): Removed.
(WI.CSSStyleDeclaration.prototype.setText): Added.
Change the setter to a method since it has side effects including an asynchronous backend call.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype.changeStyleText):
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype.get nameTextField): Removed.
(WI.SpreadsheetStyleProperty.prototype.get valueTextField): Removed.
Drive-by: remove unused code.
LayoutTests:
- inspector/css/modify-css-property-expected.txt:
- inspector/css/modify-css-property-race-expected.txt: Added.
- inspector/css/modify-css-property-race.html: Added.
- inspector/css/modify-css-property.html:
- 3:12 PM Changeset in webkit [240945] by
-
- 2 edits in trunk/Source/WebCore
[Web GPU] Code clean-up for RenderPipeline backend
https://bugs.webkit.org/show_bug.cgi?id=194238
Reviewed by Dean Jackson.
Replace dot syntax setters with calls to setter methods, and remove unnecessary setter calls for
the input state's descriptor arrays.
Covered by existing tests; no change in behavior.
- platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
(WebCore::tryCreateMtlDepthStencilState): Refactor to use implicit setters rather than dot syntax.
(WebCore::setInputStateForPipelineDescriptor): Ditto, and remove unnecessary setter calls on array objects.
- 2:30 PM Changeset in webkit [240944] by
-
- 13 edits in trunk/Source
Use deferrable timer to restart the Responsiveness Timer on each wheel event
https://bugs.webkit.org/show_bug.cgi?id=194135
Source/WebCore:
<rdar://problem/47724099>
Reviewed by Simon Fraser.
The original DeferrableOneShotTimer was not really deferrable.
What it allows is to restart the count down from scratch after
firing.
For this optimization, I want to keep the correct timing but avoid
starting a real timer every time.
I renamed DeferrableOneShotTimer to ResettableOneShotTimer and
created a real DeferrableOneShotTimer that support deadlines.
- css/CSSImageGeneratorValue.cpp:
- html/HTMLPlugInImageElement.h:
- loader/cache/CachedResource.h:
- platform/Timer.cpp:
(WebCore::DeferrableOneShotTimer::startOneShot):
(WebCore::DeferrableOneShotTimer::fired):
- platform/Timer.h:
(WebCore::TimerBase::nextFireTime const):
(WebCore::ResettableOneShotTimer::ResettableOneShotTimer):
(WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
(WebCore::DeferrableOneShotTimer::stop):
(WebCore::DeferrableOneShotTimer::restart): Deleted.
- platform/graphics/ca/TileController.h:
- platform/graphics/cg/SubimageCacheWithTimer.h:
Source/WebKit:
Reviewed by Simon Fraser.
Simon Fraser suggested a neat improvement over my previous optimization
of ResponsivenessTimer.
Instead of reseting the deadline with every event, we can let the timer
fire and add the missing time from the last start.
I implemented that behavior in the new Deferrable Timer class and use
it from ResponsivenessTimer.
- NetworkProcess/watchos/NetworkProximityAssertion.h:
- UIProcess/ResponsivenessTimer.h:
- WebProcess/Plugins/PluginView.h:
- 2:28 PM Changeset in webkit [240943] by
-
- 4 edits in trunk/Source/WebCore
Use constants for pointer types
https://bugs.webkit.org/show_bug.cgi?id=194232
Reviewed by Dean Jackson.
We cannot use an enum for the pointer type since a custom pointer type can be created by developers when creating a
pointer event using JavaScript, but we can at least used string constants for the ones created internally.
- dom/PointerEvent.cpp:
(WebCore::PointerEvent::mousePointerType):
(WebCore::PointerEvent::penPointerType):
(WebCore::PointerEvent::touchPointerType):
- dom/PointerEvent.h:
- dom/ios/PointerEventIOS.cpp:
- 2:19 PM Changeset in webkit [240942] by
-
- 4 edits3 adds in trunk
[First paint] Adjust "finishedParsingMainDocument" flag by taking deferred and async scripts into account.
https://bugs.webkit.org/show_bug.cgi?id=194168
Reviewed by Simon Fraser.
Source/WebCore:
First paint should not be blocked by async or deferred scripts.
- page/FrameView.cpp:
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty const):
Tools:
Test if the firstVisuallyNoneEmpty milestone fires before the deferred script's post-message.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/FirstVisuallyNonEmptyMilestoneWithDeferredScript.mm: Added.
(-[FirstPaintMessageHandler userContentController:didReceiveScriptMessage:]):
(-[RenderingProgressNavigationDelegate _webView:renderingProgressDidChange:]):
(TEST):
- TestWebKitAPI/Tests/WebKit/deferred-script-load.html: Added.
- TestWebKitAPI/Tests/WebKit/deferred-script.js: Added.
- 1:51 PM Changeset in webkit [240941] by
-
- 14 edits6 adds in trunk
Async overflow scroll with border-radius renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=194205
<rdar://problem/47771668>
Reviewed by Zalan Bujtas.
Source/WebCore:
When an element has composited overflow:scroll and border-radius, we need to make a layer
to clip to the inside of the border radius if necessary.
Existing code simply turned off needsDescendantsClippingLayer for composited scrolling
layers, but now we check to see if the inner border is rounded. If we have both a m_childContainmentLayer
and scrolling layers, we need to adjust the location of the scrolling layers (which are parented
in m_childContainmentLayer).
Also fix offsetFromRenderer for these layers; it's positive for layers inset from the top left
of the border box.
Tests: compositing/clipping/border-radius-async-overflow-clipping-layer.html
compositing/clipping/border-radius-async-overflow-non-stacking.html
compositing/clipping/border-radius-async-overflow-stacking.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateChildClippingStrategy): Layout is always up-to-date now, so remove the comment.
LayoutTests:
New baselines, mostly correcting offsetFromRenderer.
- compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt: Added.
- compositing/clipping/border-radius-async-overflow-clipping-layer.html: Added.
- compositing/clipping/border-radius-async-overflow-non-stacking-expected.html: Added.
- compositing/clipping/border-radius-async-overflow-non-stacking.html: Added.
- compositing/clipping/border-radius-async-overflow-stacking-expected.html: Added.
- compositing/clipping/border-radius-async-overflow-stacking.html: Added.
- compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
- platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
- platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: html.css specifies a border-radius on <textarea> for iOS, so we make additional
clipping layers.
- platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
- platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
- 1:16 PM Changeset in webkit [240940] by
-
- 30 edits3 adds in trunk
PageOverlayController's layers should be created lazily
https://bugs.webkit.org/show_bug.cgi?id=194199
Source/WebCore:
Reviewed by Tim Horton.
Expose PageOverlayController::hasDocumentOverlays() and hasViewOverlays()
and use them to only parent the overlay-hosting layers when necessary.
For document overlays, RenderLayerCompositor::appendDocumentOverlayLayers() can
simply do nothing if there are none. Updates are triggered via Page::installedPageOverlaysChanged(),
which calls FrameView::setNeedsCompositingConfigurationUpdate() to trigger the root layer
compositing updates that parents the layerWithDocumentOverlays().
View overlays are added to the layer tree via the DrawingArea. When we go between having
none and some view overlays, Page::installedPageOverlaysChanged() calls attachViewOverlayGraphicsLayer()
on the ChromeClient, and the DrawingArea responds by calling updateRootLayers() and scheduling a
compositing flush (this has to be done manually because view overlay layers are outside the
subtree managed by RenderLayerCompositor).
Now that GraphicsLayers are ref-counted, we can let the DrawingArea simply retain its m_viewOverlayRootLayer;
there is no need for RenderLayerCompositor::attachRootLayer()/detachRootLayer() to do anything with view
overlay layers. This implies that a page can navigate (new FrameView) and view overlays will persist, without
having to be manually removed and re-added. We can also remove the Frame argument to attachViewOverlayGraphicsLayer().
- loader/EmptyClients.h:
- page/ChromeClient.h:
- page/FrameView.cpp:
(WebCore::FrameView::setNeedsCompositingConfigurationUpdate): These functions need to schedule a compositing flush
because there may be nothing else that does.
(WebCore::FrameView::setNeedsCompositingGeometryUpdate):
- page/Page.cpp:
(WebCore::Page::installedPageOverlaysChanged):
- page/Page.h:
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::hasDocumentOverlays const):
(WebCore::PageOverlayController::hasViewOverlays const):
(WebCore::PageOverlayController::attachViewOverlayLayers): PageOverlayController has the Page so it
might as well be the one to call through the ChromeClient.
(WebCore::PageOverlayController::detachViewOverlayLayers):
(WebCore::PageOverlayController::installPageOverlay):
(WebCore::PageOverlayController::uninstallPageOverlay):
- page/PageOverlayController.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers): isFullUpdate is always true; remove it.
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::detachRootLayer):
Source/WebKit:
rdar://problem/46571593
Reviewed by Tim Horton.
Expose PageOverlayController::hasDocumentOverlays() and hasViewOverlays()
and use them to only parent the overlay-hosting layers when necessary.
For document overlays, RenderLayerCompositor::appendDocumentOverlayLayers() can
simply do nothing if there are none. Updates are triggered via Page::installedPageOverlaysChanged(),
which calls FrameView::setNeedsCompositingConfigurationUpdate() to trigger the root layer
compositing updates that parents the layerWithDocumentOverlays().
View overlays are added to the layer tree via the DrawingArea. When we go between having
none and some view overlays, Page::installedPageOverlaysChanged() calls attachViewOverlayGraphicsLayer()
on the ChromeClient, and the DrawingArea responds by calling updateRootLayers() and scheduling a
compositing flush (this has to be done manually because view overlay layers are outside the
subtree managed by RenderLayerCompositor).
Now that GraphicsLayers are ref-counted, we can let the DrawingArea simply retain its m_viewOverlayRootLayer;
there is no need for RenderLayerCompositor::attachRootLayer()/detachRootLayer() to do anything with view
overlay layers. This implies that a page can navigate (new FrameView) and view overlays will persist, without
having to be manually removed and re-added. We can also remove the Frame argument to attachViewOverlayGraphicsLayer().
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::attachViewOverlayGraphicsLayer):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::attachViewOverlayGraphicsLayer):
- WebProcess/WebPage/AcceleratedDrawingArea.h:
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::attachViewOverlayGraphicsLayer):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::attachViewOverlayGraphicsLayer):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
Source/WebKitLegacy/mac:
rdar://problem/46571593
Reviewed by Tim Horton.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::attachViewOverlayGraphicsLayer):
Source/WebKitLegacy/win:
rdar://problem/46571593
Reviewed by Tim Horton.
Expose PageOverlayController::hasDocumentOverlays() and hasViewOverlays()
and use them to only parent the overlay-hosting layers when necessary.
For document overlays, RenderLayerCompositor::appendDocumentOverlayLayers() can
simply do nothing if there are none. Updates are triggered via Page::installedPageOverlaysChanged(),
which calls FrameView::setNeedsCompositingConfigurationUpdate() to trigger the root layer
compositing updates that parents the layerWithDocumentOverlays().
View overlays are added to the layer tree via the DrawingArea. When we go between having
none and some view overlays, Page::installedPageOverlaysChanged() calls attachViewOverlayGraphicsLayer()
on the ChromeClient, and the DrawingArea responds by calling updateRootLayers() and scheduling a
compositing flush (this has to be done manually because view overlay layers are outside the
subtree managed by RenderLayerCompositor).
Now that GraphicsLayers are ref-counted, we can let the DrawingArea simply retain its m_viewOverlayRootLayer;
there is no need for RenderLayerCompositor::attachRootLayer()/detachRootLayer() to do anything with view
overlay layers. This implies that a page can navigate (new FrameView) and view overlays will persist, without
having to be manually removed and re-added. We can also remove the Frame argument to attachViewOverlayGraphicsLayer().
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::attachViewOverlayGraphicsLayer):
- WebCoreSupport/WebChromeClient.h:
LayoutTests:
rdar://problem/46571593
Reviewed by Tim Horton.
- pageoverlay/overlay-remove-reinsert-view-expected.txt: We no longer unparent the overlays
on view removal, so new results.
- platform/ios-wk2/TestExpectations: Unskip some iOS tests.
- platform/ios-wk2/pageoverlay/overlay-installation-expected.txt: Added.
- platform/ios-wk2/pageoverlay/overlay-large-document-expected.txt: Added.
- platform/ios-wk2/pageoverlay/overlay-large-document-scrolled-expected.txt: Added.
- platform/ios/TestExpectations: Unskip some iOS tests.
- 1:03 PM Changeset in webkit [240939] by
-
- 3 edits2 adds in trunk
Source/WebCore:
When performing Increment or Decrement on sliders, check to see if the slider is disabled.
https://bugs.webkit.org/show_bug.cgi?id=173497
Patch by Eric Liang <ericliang@apple.com> on 2019-02-04
Reviewed by Chris Fleizach.
Test: accessibility/set-value-not-work-for-disabled-sliders.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alterSliderValue):
LayoutTests:
Check if slider value changed after calling AX Increment or Decrement on disabled sliders.
https://bugs.webkit.org/show_bug.cgi?id=193497
Patch by Eric Liang <ericliang@apple.com> on 2019-02-04
Reviewed by Chris Fleizach.
- accessibility/set-value-not-work-for-disabled-sliders.html: Added.
- 1:02 PM Changeset in webkit [240938] by
-
- 14 edits in trunk/Source/JavaScriptCore
[JSC] Shrink size of FunctionExecutable
https://bugs.webkit.org/show_bug.cgi?id=194191
Reviewed by Michael Saboff.
This patch reduces the size of FunctionExecutable. Since it is allocated in IsoSubspace, reducing the size directly
improves the allocation efficiency.
- ScriptExecutable (base class of FunctionExecutable) has several members, but it is meaningful only in FunctionExecutable. We remove this from ScriptExecutable, and move it to FunctionExecutable.
- FunctionExecutable has several data which are rarely used. One for FunctionOverrides functionality, which is typically used for JSC debugging purpose, and another is TypeSet and offsets for type profiler. We move them to RareData and reduce the size of FunctionExecutable in the common case.
This patch changes the size of FunctionExecutable from 176 to 144.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpSource):
(JSC::CodeBlock::finishCreation):
- dfg/DFGNode.h:
(JSC::DFG::Node::OpInfoWrapper::as const):
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::computeLineAndColumn const):
- runtime/ExecutableBase.h:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
(JSC::FunctionExecutable::ensureRareDataSlow):
- runtime/FunctionExecutable.h:
- runtime/Intrinsic.h:
- runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::ProgramExecutable):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
(JSC::ScriptExecutable::overrideLineNumber const):
(JSC::ScriptExecutable::typeProfilingStartOffset const):
(JSC::ScriptExecutable::typeProfilingEndOffset const):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::firstLine const):
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber const): Deleted.
(JSC::ScriptExecutable::overrideLineNumber const): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset const): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset const): Deleted.
- runtime/StackFrame.cpp:
(JSC::StackFrame::computeLineAndColumn const):
- tools/JSDollarVM.cpp:
(JSC::functionReturnTypeFor):
- 12:49 PM Changeset in webkit [240937] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, improve preprocessor guard
https://bugs.webkit.org/show_bug.cgi?id=194166
<rdar://problem/47694328>
AC mode is only optional in GTK port. Requested by Zan.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- 11:49 AM Changeset in webkit [240936] by
-
- 2 edits in trunk/Tools
REGRESSION (r237269): webkit-patch what-broke is broken
https://bugs.webkit.org/show_bug.cgi?id=193025
Reviewed by Aakash Jain.
- Scripts/webkitpy/common/host.py:
(Host.buildbot):
(Host.bugzilla): Renamed to 'buildbot'.
- 10:59 AM Changeset in webkit [240935] by
-
- 7 edits in tags/Safari-608.1.4.1/Source
Versioning.
- 10:59 AM Changeset in webkit [240934] by
-
- 2 edits in trunk/Tools
[iOS] API test WKAttachmentTests.InsertAndRemoveDuplicateAttachment is failing after r240902
https://bugs.webkit.org/show_bug.cgi?id=194207
Reviewed by Tim Horton.
Fix this API test by making it robust against smart paste on iOS. Currently, this test pastes an attachment
element and assumes that the pasted attachment is adjacent to the original one. However, after enabling smart
paste, we now insert an extra space in between. Instead of executing "DeleteBackward" twice to test removing the
attachment elements, we delete backwards once to remove the pasted attachment, and move the selection to the
start and delete forwards to remove the original attachment.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 10:57 AM Changeset in webkit [240933] by
-
- 1 copy in tags/Safari-608.1.4.1
New tag.
- 10:55 AM Changeset in webkit [240932] by
-
- 1 edit15 adds in trunk/Websites/webkit.org
Add demos for Intersection Observer API
https://bugs.webkit.org/show_bug.cgi?id=194219
Reviewed by Simon Fraser.
- demos/intersection-observer/lazy-image-load/index.html: Added.
- demos/intersection-observer/lazy-image-load/scripts.js: Added.
(ImageLoader):
(ImageLoader.prototype.findImages):
(ImageLoader.prototype.smallURLForImage):
(ImageLoader.prototype.largeURLForImage):
(ImageLoader.prototype.setupObserver):
(ImageLoader.prototype.intersectionsChanged):
- demos/intersection-observer/lazy-image-load/style.css: Added.
(body):
(section):
(header):
(.main):
(.main img):
(.stories):
(.world, .local):
(.world):
(.local):
(.ad):
(.contents):
(.sidebar):
(.links):
(.main-story):
(.main-story img):
(.top-story):
(.top-story img):
(.mid-story img):
(.link-group):
(.link-group img):
(.link-group ul):
(.link-group li):
(footer):
(footer ul):
(footer a):
(.footer-col):
- demos/intersection-observer/simple/script.js: Added.
(addToLog):
(clearLog):
(stringFromRect):
(intersectedCallback):
- demos/intersection-observer/simple/simple-observer-iframe.html: Added.
- demos/intersection-observer/simple/simple-observer-root-margin.html: Added.
- demos/intersection-observer/simple/simple-observer.html: Added.
- demos/intersection-observer/simple/styles.css: Added.
(body):
(.results):
(.results button):
(h2):
(#logging):
- demos/intersection-observer/triggered-animation/index.html: Added.
- demos/intersection-observer/triggered-animation/script.js: Added.
(AnimationManager):
(AnimationManager.prototype.setupObserver):
(AnimationManager.prototype.intersectionsChanged):
- demos/intersection-observer/triggered-animation/style.css: Added.
(body):
(p):
(.animation-container h1):
(.animation-container):
(.animation-container .box):
(.slide.box):
(.animation-container.visible > .slide.box):
(.slide.animation-container div:nth-of-type(1)):
(.slide.animation-container div:nth-of-type(2)):
(.slide.animation-container div:nth-of-type(3)):
(.spin):
(.animation-container.visible .spin):
(@keyframes spin):
(to):
(.animation-container.svg):
(.animation-container.svg path):
(.animation-container.svg.visible):
(@keyframes stroke-move):
(.animation-container.svg circle):
(.animation-container.svg.visible circle):
(.animation-container.svg circle:nth-of-type(2)):
(.animation-container.svg circle:nth-of-type(3)):
(.animation-container.svg circle:nth-of-type(4)):
(.animation-container.svg circle:nth-of-type(5)):
(@keyframes circle-scale):
- 10:51 AM Changeset in webkit [240931] by
-
- 9 edits in trunk/Source
IndexedDB: leak WebIDBConnectionToServer in layout tests
https://bugs.webkit.org/show_bug.cgi?id=193688
<rdar://problem/47353263>
Reviewed by Geoffrey Garen.
Source/WebCore:
Let IDBConnectionToServer keep a WeakPtr of IDBConnectionToServerDelegate.
- Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer):
- Modules/indexeddb/client/IDBConnectionToServer.h:
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
(WebKit::NetworkConnectionToWebProcess::removeIDBConnectionToServer): Deleted.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
- 10:47 AM Changeset in webkit [240930] by
-
- 3 edits in trunk/Source/WebCore
Make sure to remove the device observer in AVVideoCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=194181
<rdar://problem/47739247>
Reviewed by Eric Carlson.
Make sure to remove the device observer when the observer is destroyed.
To simplify things, add the observer in AVVideoCaptureSource constructor and remove it in the destructor.
Make also sure the session observer is also removed whenever the session is released by AVVideoCaptureSource.
Covered by manual test.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::initializeSession):
(WebCore::AVVideoCaptureSource::clearSession):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::setupSession):
- 10:19 AM Changeset in webkit [240929] by
-
- 2 edits in trunk/Source/WebKit
<rdar://problem/47788802>
Unreviewed build fix.
- Platform/spi/ios/UIKitSPI.h:
- 9:37 AM Changeset in webkit [240928] by
-
- 12 edits2 adds in trunk
Capture state should be managed consistently when doing process swapping
https://bugs.webkit.org/show_bug.cgi?id=194122
<rdar://problem/47609293>
Reviewed by Eric Carlson.
Source/WebKit:
When doing PSON, WebPageProxy::resetState is called.
It resets the media state, but does not call the client delegates.
Instead of directly updating the media state, call the routine used to update it so that client delegates are called.
Covered by new API test and layout test.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mediaCaptureState]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::updatePlayingMediaDidChange):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[GetUserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[GetUserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
(-[GetUserMediaUIDelegate _webView:mediaCaptureStateDidChange:]):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::isDoingMediaCapture const):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::isDoingMediaCapture const):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::isDoingMediaCapture const):
- 8:22 AM Changeset in webkit [240927] by
-
- 12 edits1 add in trunk/Source
Use a dedicated type instead of int32_t for pointer identifiers
https://bugs.webkit.org/show_bug.cgi?id=194217
Patch by Antoine Quint <Antoine Quint> on 2019-02-04
Reviewed by Antti Koivisto.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
- dom/PointerEvent.h:
- dom/PointerID.h: Added.
- page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::setPointerCapture):
(WebCore::PointerCaptureController::releasePointerCapture):
(WebCore::PointerCaptureController::hasPointerCapture):
(WebCore::PointerCaptureController::touchEndedOrWasCancelledForIdentifier):
(WebCore::PointerCaptureController::hasCancelledPointerEventForIdentifier):
(WebCore::PointerCaptureController::cancelPointer):
- page/PointerCaptureController.h:
Source/WebKit:
- Scripts/webkit/messages.py:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::cancelPointer):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::cancelPointer):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 8:05 AM Changeset in webkit [240926] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Unable to make a selection in jsfiddle.net using arrow keys when requesting desktop site
Followup to https://bugs.webkit.org/show_bug.cgi?id=193758
Reviewed by Daniel Bates.
Put the iOS-specific behavior behind an EditingBehavior check, rather than a compile-time guard. No change in
behavior.
- editing/EditingBehavior.h:
(WebCore::EditingBehavior::shouldMoveSelectionToEndWhenFocusingTextInput const):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setDefaultSelectionAfterFocus):
- 8:02 AM Changeset in webkit [240925] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, avoid -Wswitch warnings introduced in r240880
https://bugs.webkit.org/show_bug.cgi?id=193740
<rdar://problem/47527267>
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- 7:49 AM Changeset in webkit [240924] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Make InlineFormattingContext::collectInlineContent non-recursive.
https://bugs.webkit.org/show_bug.cgi?id=194210
Reviewed by Antti Koivisto.
Use iterative algorithm to collect inline content (and add breaking rules).
This is in preparation for fixing the inline preferred width computation.
- layout/Verification.cpp:
(WebCore::Layout::resolveForRelativePositionIfNeeded):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::addDetachingRules):
(WebCore::Layout::createAndAppendInlineItem):
(WebCore::Layout::InlineFormattingContext::collectInlineContent const):
(WebCore::Layout::InlineFormattingContext::collectInlineContentForSubtree const): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
- 7:48 AM Changeset in webkit [240923] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix unused variable warnings introduced in r240912
https://bugs.webkit.org/show_bug.cgi?id=194198
<rdar://problem/47776051>
- page/FrameView.cpp:
(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
(WebCore::FrameView::setNeedsCompositingGeometryUpdate):
- 7:47 AM Changeset in webkit [240922] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Allow pinch zoom on touchpad
https://bugs.webkit.org/show_bug.cgi?id=194201
Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-02-04
Reviewed by Michael Catanzaro.
Enable touchpad events for WebkitWebViewBase, then feed touchpad
pinch events to GestureController.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Added GDK_TOUCHPAD_GESTURE_MASK to event mask.
(webkitWebViewBaseEvent): Added.
(webkit_web_view_base_class_init): Override event vfunc.
- 7:39 AM Changeset in webkit [240921] by
-
- 6 edits2 adds in trunk
[css-scroll-snap] scroll-snap-align not honored on child with non-visible overflow
https://bugs.webkit.org/show_bug.cgi?id=191816
Patch by Frederic Wang <fwang@igalia.com> on 2019-02-04
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch fixes a bug that prevents children of a scroll container to create snap positions
when they have non-visible overflow. This happens because for such a child, the function
RenderBox::findEnclosingScrollableContainer() will return the child itself rather than the
scroll container. To address that issue, we introduce a new
RenderObject::enclosingScrollableContainerForSnapping() helper function that ensures that
a real RenderBox ancestor is returned.
Test: css3/scroll-snap/scroll-snap-children-with-overflow.html
- page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::updateSnapOffsetsForScrollableArea): Use enclosingScrollableContainerForSnapping()
so that we don't skip children with non-visible overflow.
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleDidChange): Ditto. The new function calls
enclosingBox().
- rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Return
the scrollable container of the enclosing box. If it is actually the render object itself
then start the search from the parent box instead.
- rendering/RenderObject.h: Declare enclosingScrollableContainerForSnapping().
LayoutTests:
Add a test to verify that children with non-visible overflow create snap offsets.
- css3/scroll-snap/scroll-snap-children-with-overflow-expected.txt: Added.
- css3/scroll-snap/scroll-snap-children-with-overflow.html: Added.
- 7:36 AM Changeset in webkit [240920] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, only force settings.acceleratedCompositingEnabled() to true for Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=194166
<rdar://problem/47694328>
Accelerated compositing is broken for me at least. We're a long way from being able to force
it.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- 7:00 AM Changeset in webkit [240919] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Remove last python2 dependency from CMake build process
https://bugs.webkit.org/show_bug.cgi?id=194218
Patch by Abderrahim Kitouni <akitouni@gnome.org> on 2019-02-04
Reviewed by Michael Catanzaro.
- InspectorGResources.cmake:
- 4:48 AM Changeset in webkit [240918] by
-
- 14 edits in trunk/Source
Source/WebCore:
Rename GraphicsLayer and PlatformCALayer scrolling layer type enum values to be less ambiguous
https://bugs.webkit.org/show_bug.cgi?id=194215
Reviewed by Frédéric Wang.
GraphicsLayer::Type::Scrolling -> GraphicsLayer::Type::ScrollContainer
PlatformCALayer::LayerTypeScrollingLayer -> PlatformCALayer::LayerTypeScrollContainerLayer
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::supportsLayerType):
- platform/graphics/GraphicsLayer.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayer::supportsLayerType):
(WebCore::GraphicsLayerCA::initialize):
- platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::operator<<):
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
(WebCore::PlatformCALayerCocoa::commonInit):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateScrollingLayers):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::ensureRootLayer):
Source/WebKit:
Rename GraphicsLayer and PlatformCALayer type enum values to match "scroll container layer" convention
https://bugs.webkit.org/show_bug.cgi?id=194215
Reviewed by Frédéric Wang.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- 12:15 AM Changeset in webkit [240917] by
-
- 2 edits in trunk/Source/JavaScriptCore
DFG's doesGC() is incorrect about the SameValue node's behavior.
https://bugs.webkit.org/show_bug.cgi?id=194211
<rdar://problem/47608913>
Reviewed by Saam Barati.
Only the DoubleRepUse case is guaranteed to not GC. The other case may GC because
it calls operationSameValue() which may allocate memory for resolving ropes.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
Feb 3, 2019:
- 11:49 PM Changeset in webkit [240916] by
-
- 16 edits in trunk
[iOS] Tiles not created in large scrollable iframes
https://bugs.webkit.org/show_bug.cgi?id=193665
Reviewed by Simon Fraser.
Source/WebCore:
We are not syncing scroll position back to the graphics layer tree correctly.
Test by Frédéric Wang.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::reconcileScrollPosition):
Factor setting and syncing scrolling layer positions into a function.
Use bounds.origin scrolling mechanic when scrollContainerLayer is present.
(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateScrollLayerPosition): Deleted.
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollContainerLayerForFrameView):
(WebCore::ScrollingCoordinator::scrolledContentsLayerForFrameView):
(WebCore::ScrollingCoordinator::scrollLayerForFrameView): Deleted.
- page/scrolling/ScrollingCoordinator.h:
- rendering/RenderLayerCompositor.cpp:
Rename scrollLayer to scrolledContentsLayer according to out preferred naming scheme and use it in that role only.
Add scrollContainerLayer as a separate layer. It is only constructed when using async scrolling on iOS.
(WebCore::RenderLayerCompositor::~RenderLayerCompositor):
(WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation const):
(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
(WebCore::RenderLayerCompositor::frameViewDidScroll):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::destroyRootLayer):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
- rendering/RenderLayerCompositor.h:
Source/WebKit:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren):
We now use scrollContainerLayer consistently so remove the special cases.
LayoutTests:
Test by Frédéric Wang.
- fast/scrolling/ios/scroll-iframe-expected.html:
- fast/scrolling/ios/scroll-iframe.html:
- platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
- platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
- 11:13 PM Changeset in webkit [240915] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] UnlinkedMetadataTable assumes that MetadataTable is destroyed before it is destructed, but order of destruction of JS heap cells are not guaranteed
https://bugs.webkit.org/show_bug.cgi?id=194031
Reviewed by Saam Barati.
UnlinkedMetadataTable assumes that MetadataTable linked against this UnlinkedMetadataTable is already destroyed when UnlinkedMetadataTable is destroyed.
This means that UnlinkedCodeBlock is destroyed after all the linked CodeBlocks are destroyed. But this assumption is not valid since GC's finalizer
sweeps objects without considering the dependencies among swept objects. UnlinkedMetadataTable can be destroyed even before linked MetadataTable is
destroyed if UnlinkedCodeBlock is destroyed before linked CodeBlock is destroyed.
To make the above assumption valid, we make UnlinkedMetadataTable RefCounted object, and make MetadataTable hold the strong ref to UnlinkedMetadataTable.
This ensures that UnlinkedMetadataTable is destroyed after all the linked MetadataTables are destroyed.
- bytecode/MetadataTable.cpp:
(JSC::MetadataTable::MetadataTable):
(JSC::MetadataTable::~MetadataTable):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedCodeBlock::estimatedSize):
(JSC::UnlinkedCodeBlock::setInstructions):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::metadata):
(JSC::UnlinkedCodeBlock::metadataSizeInBytes):
- bytecode/UnlinkedMetadataTable.h:
(JSC::UnlinkedMetadataTable::create):
- bytecode/UnlinkedMetadataTableInlines.h:
(JSC::UnlinkedMetadataTable::UnlinkedMetadataTable):
- runtime/CachedTypes.cpp:
(JSC::CachedMetadataTable::decode const):
(JSC::CachedCodeBlock::metadata const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
- 6:15 PM Changeset in webkit [240914] by
-
- 2 edits in trunk/Source/WebKit
[curl] [WebKit] Assertion failures of missing networkStorageSession for storage/indexeddb tests
https://bugs.webkit.org/show_bug.cgi?id=194141
Reviewed by Ross Kirsling.
Implemented WebKit::NetworkProcess::switchToNewTestingSession and
WebKit::NetworkProcess::ensureSession for curl port.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::switchToNewTestingSession):
(WebKit::NetworkProcess::ensureSession):
- 6:11 PM Changeset in webkit [240913] by
-
- 2 edits in trunk/Tools
[Win] WebKitTestRunners is failing to create the IndexedDB directory.
https://bugs.webkit.org/show_bug.cgi?id=194142
Reviewed by Ross Kirsling.
There three 'separator' variables in TestController.cpp. Renamed
it 'pathSeparator', and unified them.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::generateContextConfiguration const):
(WTR::createTestURL):
(WTR::TestController::platformAdjustContext):
- 5:48 PM Changeset in webkit [240912] by
-
- 19 edits in trunk
Make setNeedsLayout on the root more explicitly about triggering its side-effects
https://bugs.webkit.org/show_bug.cgi?id=194198
Reviewed by Antti Koivisto.
Source/WebCore:
Calling setNeedsLayout() on the FrameView or RenderView is an odd concept; the render tree
generally manages its own dirty state.
Most callers of setNeedsLayout() on the root are really trying to trigger the side-effects
of layout, like compositing updates, which are required when view configuration state, like
headers, footers and transparency, change. These dependencies are currently implicit and
poorly defined.
Renaming "setNeedsLayout" on FrameView is a step towards being more explicit about pure
rendering updates, vs updates of downstream data strutures like compositing. It's now called
setNeedsLayoutAfterViewConfigurationChange(). In addition, expose
setNeedsCompositingConfigurationUpdate() and setNeedsCompositingGeometryUpdate() so callers
can trigger the appropriate types of compositing updates on the root layer.
In addition, FrameViewLayoutContext::setNeedsLayoutAfterViewConfigurationChange() schedules a
layout. Withtout this, some callers would dirty the RenderView's layout but rely on some
other trigger to make the layout happen.
This cleanup was prompted by noticing that FrameView::setHeaderHeight() dirtied layout
but never scheduled it, making banner insertion in MiniBrowser unreliable.
This patch also removes the aliasing of headerHeight/footerHeight between Page and
FrameView. Banners are a property of Page, so FrameView fetches the banner heights
from Page.
- page/FrameView.cpp:
(WebCore::FrameView::headerHeight const):
(WebCore::FrameView::footerHeight const):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::setNeedsLayoutAfterViewConfigurationChange):
(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
(WebCore::FrameView::setNeedsCompositingGeometryUpdate):
(WebCore::FrameView::scheduleSelectionUpdate):
(WebCore::FrameView::setTransparent):
(WebCore::FrameView::setBaseBackgroundColor):
(WebCore::FrameView::setAutoSizeFixedMinimumHeight):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::setHeaderHeight): Deleted.
(WebCore::FrameView::setFooterHeight): Deleted.
(WebCore::FrameView::setNeedsLayout): Deleted.
- page/FrameView.h:
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::setNeedsLayoutAfterViewConfigurationChange):
(WebCore::FrameViewLayoutContext::setNeedsLayout): Deleted.
- page/FrameViewLayoutContext.h:
- page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
(WebCore::Page::setHeaderHeight):
(WebCore::Page::setFooterHeight):
(WebCore::Page::addHeaderWithHeight): Deleted.
(WebCore::Page::addFooterWithHeight): Deleted.
- page/Page.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):
Source/WebKit:
Call the newly named functions.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::updateScrollbars):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setHeaderBannerHeightForTesting):
(WebKit::WebPage::setFooterBannerHeightForTesting):
- WebProcess/WebPage/mac/PageBannerMac.mm:
(WebKit::PageBanner::addToPage):
(WebKit::PageBanner::detachFromPage):
(WebKit::PageBanner::hide):
Source/WebKitLegacy/mac:
Call the newly named functions.
- WebView/WebFrame.mm:
(-[WebFrame setNeedsLayout]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView setNeedsLayout:]):
Tools:
No need to set the banner heights on navigation now, since Page stores them.
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController webView:didFinishNavigation:]):
- 4:44 PM Changeset in webkit [240911] by
-
- 7 edits4 adds in trunk
Parse and handle Ad Click Attribution attributes in HTMLAnchorElement::handleClick()
https://bugs.webkit.org/show_bug.cgi?id=194104
<rdar://problem/47649991>
Reviewed by Chris Dumez, Daniel Bates, and Darin Adler.
Source/WebCore:
Test: http/tests/adClickAttribution/anchor-tag-attributes-validation.html
This patch adds parsing and validation of the two new Ad Click Attribution
attributes in anchor elements: adcampaignid and addestination. The data is
not yet forwarded into the loader.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAdClickAttribution const):
(WebCore::HTMLAnchorElement::handleClick):
Now calls HTMLAnchorElement::parseAdClickAttribution().
- html/HTMLAnchorElement.h:
- loader/AdClickAttribution.h:
Made WebCore::AdClickAttribution copyable since it's needed to have it be
WTF::Optional. Also made AdClickAttribution::MaxEntropy public. Changed
numeric types from unsigned short to uint32_t.
(WebCore::AdClickAttribution::Campaign::isValid const):
(WebCore::AdClickAttribution::Conversion::isValid const):
Tools:
- TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp:
(TestWebKitAPI::TEST):
Changed numeric types from unsigned short to uint32_t.
LayoutTests:
This test case makes sure invalid data triggers console warnings.
- http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.
- http/tests/adClickAttribution/anchor-tag-attributes-validation.html: Added.
- platform/ios-wk2/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.
Console line numbers are not emitted when running iOS tests so this -expected.txt file doesn't have them.
- 3:43 PM Changeset in webkit [240910] by
-
- 7 edits in branches/safari-607-branch/Source
Versioning.
- 2:48 PM Changeset in webkit [240909] by
-
- 29 edits in trunk/Source
Validate navigation policy decisions to avoid crashes in continueLoadAfterNavigationPolicy
https://bugs.webkit.org/show_bug.cgi?id=194189
Reviewed by Geoffrey Garen.
Source/WebCore:
Introduced PolicyCheckIdentifier to pair each navigation policy check request with a decision,
and deployed it in PolicyChecker. The identifier is passed from WebContent process to UI process
in WebKit2, and passed it back with the policy decision.
Because PolicyCheckIdentifier embeds the process identifier from which a navigation policy is checked,
we would be able to detect when UI process had sent the decision to a wrong WebContent process.
This patch also adds release assertions to make sure history().provisionalItem() is set whenever
we're requesting a navigation policy check.
These code changes should either:
- Fix crashes in FrameLoader::continueLoadAfterNavigationPolicy where isBackForwardLoadType would return true yet history().provisionalItem() is null.
- Detect a bug that UI process can send a navigation policy decision to a wrong WebContent process.
- Rule out the possibility that (2) exists.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):
- loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):
- loader/FrameLoader.h:
- loader/FrameLoaderClient.h:
- loader/FrameLoaderTypes.h:
(WebCore::PolicyCheckIdentifier): Added.
(WebCore::PolicyCheckIdentifier::operator== const): Added.
(WebCore::PolicyCheckIdentifier::PolicyCheckIdentifier): Added.
(WebCore::PolicyCheckIdentifier::encode const): Added.
(WebCore::PolicyCheckIdentifier::decode): Added.
- loader/PolicyChecker.cpp:
(WebCore::PolicyCheckIdentifier::generate):
(WebCore::PolicyCheckIdentifier::isValidFor): Returns true if the identifer matches. Also release asserts
that the process ID is same, and that m_check is always not zero (meaning it's a generated value).
The failure of these release assertions would indicate that there is a bug in UI process, which results in
a policy decision response being sent to a wrong Web process.
(WebCore::PolicyChecker::checkNavigationPolicy): Exit early if isValidFor fails.
(WebCore::PolicyChecker::checkNewWindowPolicy):
Source/WebKit:
Pass the policy check identifier around functions and store it in PolicyDecisionSender
so that we can send it back to WebCore with the navigation policy decision.
We also store it in WebFrame in the case the policy decision had to be invalidated
before the decision was received (via WebFrame::invalidatePolicyListener).
- Scripts/webkit/messages.py:
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::PolicyDecisionSender): Added PolicyCheckIdentifier as a member.
(WebKit::WebPageProxy::PolicyDecisionSender::create):
(WebKit::WebPageProxy::PolicyDecisionSender::send):
(WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::setUpPolicyListener):
(WebKit::WebFrame::invalidatePolicyListener):
(WebKit::WebFrame::didReceivePolicyDecision):
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceivePolicyDecision):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
Pass the policy check identifier around functions and store it in WebFramePolicyListener
so that we can send it back to WebCore with the navigation policy decision.
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::dispatchWillSubmitForm):
(WebFrameLoaderClient::setUpPolicyListener):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:]):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:appLinkURL:]):
(-[WebFramePolicyListener invalidate]):
(-[WebFramePolicyListener dealloc]):
(-[WebFramePolicyListener receivedPolicyDecision:]):
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:]): Deleted.
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:appLinkURL:]): Deleted.
Source/WebKitLegacy/win:
Pass the policy check identifier around functions and store it in WebFramePolicyListener
so that we can send it back to WebCore with the navigation policy decision.
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::dispatchWillSubmitForm):
(WebFrameLoaderClient::setUpPolicyListener):
- WebCoreSupport/WebFrameLoaderClient.h:
- 1:17 PM Changeset in webkit [240908] by
-
- 7 edits in tags/Safari-608.1.3.0.2/Source
Versioning.
- 1:10 PM Changeset in webkit [240907] by
-
- 1 copy in tags/Safari-608.1.3.0.2
Tag Safari-608.1.3.0.2.
- 1:02 PM Changeset in webkit [240906] by
-
- 2 edits in trunk/Source/WebCore
Don't include ScrollCoordinator.h from Element.h
https://bugs.webkit.org/show_bug.cgi?id=194206
Reviewed by Daniel Bates.
- dom/Element.h:
- 12:52 PM Changeset in webkit [240905] by
-
- 4 edits2 adds in trunk
Unable to move selection into editable roots with 0 height
https://bugs.webkit.org/show_bug.cgi?id=194143
<rdar://problem/47767284>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Currently, positions inside editable elements of height 0 are not considered to be candidates when
canonicalizing a position to its visible counterpart. This prevents us from moving the selection into these
editable roots at all. To fix this, we relax this constraint by allowing positions anchored by root editable
elements to be candidates.
Test: editing/selection/insert-text-in-empty-content-editable.html
- dom/Position.cpp:
(WebCore::Position::isCandidate const):
LayoutTests:
Add a new layout test that executes editing commands in a contenteditable element of height 0, and adjust an
existing layout test that copies and pastes an image element to wait until the image has loaded.
- editing/pasteboard/styled-element-markup.html:
- editing/selection/insert-text-in-empty-content-editable-expected.txt: Added.
- editing/selection/insert-text-in-empty-content-editable.html: Added.
- 11:46 AM Changeset in webkit [240904] by
-
- 4 edits in trunk/Source/WebCore
Tidyup of Pagination and FrameView m_mediaType initialization
https://bugs.webkit.org/show_bug.cgi?id=194203
Reviewed by Darin Adler.
Fix post-commit feedback on lines around code changed in r240901.
- page/FrameView.cpp:
(WebCore::FrameView::FrameView):
- page/FrameView.h:
- rendering/Pagination.h:
(WebCore::Pagination::operator!= const):
- 5:53 AM Changeset in webkit [240903] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, rolling out r240896.
https://bugs.webkit.org/show_bug.cgi?id=194202
"Fixes leaks, but is probably not the correct fix." (Requested
by ddkilzer on #webkit).
Reverted changeset:
"Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
(48 bytes) in com.apple.WebKit.WebContent running layout
tests"
https://bugs.webkit.org/show_bug.cgi?id=193291
https://trac.webkit.org/changeset/240896
- 1:05 AM Changeset in webkit [240902] by
-
- 26 edits3 copies10 adds in trunk
Turn on Smart Paste
https://bugs.webkit.org/show_bug.cgi?id=193786
Reviewed by Ryosuke Niwa.
Source/WebCore:
Turned on a modified tests:
LayoutTests/editing/pasteboard/smart-paste-001.html
LayoutTests/editing/pasteboard/smart-paste-002.html
LayoutTests/editing/pasteboard/smart-paste-003.html
LayoutTests/editing/pasteboard/smart-paste-004.html
LayoutTests/editing/pasteboard/smart-paste-005.html
LayoutTests/editing/pasteboard/smart-paste-006.html
LayoutTests/editing/pasteboard/smart-paste-007.html
LayoutTests/editing/pasteboard/smart-paste-008.html
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::canSmartReplace):
Turn on smart replace.
Source/WebKit:
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::isSmartInsertDeleteEnabled):
Use the flag from UIKit to determine if smart copy paste should be
turned on.
LayoutTests:
Rebaselined many tests and/or added iOS specific expectations to
correctly reflect smart copy paste behavior.
- editing/editing.js:
(runEditingTestWithCallbackLogging):
(runDumpAsTextEditingTest):
Added ability to handle async functions.
- editing/pasteboard/smart-paste-001.html:
- editing/pasteboard/smart-paste-002.html:
- editing/pasteboard/smart-paste-003.html:
- editing/pasteboard/smart-paste-004.html:
- editing/pasteboard/smart-paste-005.html:
- editing/pasteboard/smart-paste-006.html:
- editing/pasteboard/smart-paste-007.html:
- editing/pasteboard/smart-paste-008.html:
- platform/ios-wk2/editing/pasteboard/smart-paste-007-expected.txt:
- platform/ios-wk2/editing/pasteboard/smart-paste-008-expected.txt:
- platform/ios/TestExpectations:
- platform/ios/editing/pasteboard/smart-paste-001-expected.txt: Added.
- platform/ios/editing/pasteboard/smart-paste-002-expected.txt: Added.
- platform/ios/editing/pasteboard/smart-paste-003-expected.txt: Added.
- platform/ios/editing/pasteboard/smart-paste-004-expected.txt: Added.
- platform/ios/editing/pasteboard/smart-paste-005-expected.txt: Added.
- platform/ios/editing/pasteboard/smart-paste-006-expected.txt: Added.
- resources/ui-helper.js:
(window.UIHelper.doubleClickAt):
(window.UIHelper.async.selectWordByDoubleTapOrClick):
Added helper functions to allow for selecting a word by double tap or click.