Timeline
Feb 24, 2019:
- 10:04 PM Changeset in webkit [242032] by
-
- 15 edits2 adds in trunk/Source
Introduce ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=194977
<rdar://problem/48338115>
Reviewed by Simon Fraser.
Source/WebCore:
This patch is about piping through all the related WK* calls.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):
- loader/FrameLoader.cpp:
- page/DOMTimer.cpp:
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::clearTimeout):
- page/Frame.cpp:
(WebCore::Frame::willDetachPage):
- page/Page.h:
(WebCore::Page::contentChangeObserver):
- page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::mouseMoved):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::CheckForVisibilityChange::CheckForVisibilityChange):
(WebCore::CheckForVisibilityChange::~CheckForVisibilityChange):
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
Source/WebKitLegacy/ios:
- WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::observedContentChange):
(WebChromeClientIOS::clearContentChangeObservers):
- 10:03 PM Changeset in webkit [242031] by
-
- 31 edits in trunk/Source
Migrate from "fixedPositionRect" to "layoutViewport" in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=194984
Reviewed by Sam Weinig.
Rename "fixedPositionRect" to "layoutViewport" in scrolling tree code.
Remove ScrollingTree::fixedPositionRect() which was only used on iOS, to fetch the
current layout viewport rect. Instead, set the layout viewport on the root
node in ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling().
Source/WebCore:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Deleted.
- page/scrolling/ScrollingTree.h:
- page/scrolling/ScrollingTreeFrameHostingNode.cpp:
(WebCore::ScrollingTreeFrameHostingNode::updateLayersAfterAncestorChange):
- page/scrolling/ScrollingTreeFrameHostingNode.h:
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
- page/scrolling/cocoa/ScrollingTreeStickyNode.h:
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
(WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterAncestorChange):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition):
Source/WebKit:
Add a WK2 Scrolling log channel.
- Platform/Logging.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::fixedPositionRect): Deleted.
- UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::currentLayoutViewport const):
(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect const): Deleted.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateChildNodesAfterScroll):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterViewportChange):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterAncestorChange):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterAncestorChange):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateLayersAfterAncestorChange):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
- 8:47 PM Changeset in webkit [242030] by
-
- 2 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241986. rdar://problem/48350373
Crash in SWServerJobQueue::runNextJobSynchronously
https://bugs.webkit.org/show_bug.cgi?id=194974
Reviewed by Geoffrey Garen.
We suspect the crash is happening due to m_jobQueue being empty in runNextJobSynchronously
or there is a timer heap corruption again :(
Exit early when m_jobQueue is empty. Also add a debug assert that this should never happen
but convert an existing release assert to a debug assert since this appears to be hitting
too frequently in wild.
- workers/service/server/SWServerJobQueue.cpp: (WebCore::SWServerJobQueue::runNextJobSynchronously):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242029] by
-
- 5 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241967. rdar://problem/48350358
Crash under IDBServer::IDBConnectionToClient::identifier() const
https://bugs.webkit.org/show_bug.cgi?id=194843
<rdar://problem/48203102>
Reviewed by Geoffrey Garen.
UniqueIDBDatabase should ignore requests from connections that are already closed.
Tests are hard to create without some tricks on UniqueIDBDatabase so this fix is verified manually.
One test is created by adding delay to UniqueIDBDatabase::openBackingStore on the background thread to make sure
disconnection of web process happens before UniqueIDBDatabase::didOpenBackingStore, because didOpenBackingStore
may start a version change transaction and ask for identifier from the connection that is already gone.
- Modules/indexeddb/server/IDBConnectionToClient.cpp: (WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):
- Modules/indexeddb/server/IDBConnectionToClient.h: (WebCore::IDBServer::IDBConnectionToClient::isClosed):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::clearStalePendingOpenDBRequests): (WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations): (WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242028] by
-
- 7 edits in branches/safari-607-branch
Cherry-pick r241963. rdar://problem/48350367
Regression(PSON) Unable to preview password-protected documents on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=194954
<rdar://problem/48127957>
Reviewed by Alex Christensen.
Source/WebKit:
Make sure the ProvisionalPageProxy forwards to the WebPageProxy the QuickLook-related
IPC on iOS.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame): (WebKit::ProvisionalPageProxy::didReceiveMessage):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame): (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: (-[PSONNavigationDelegate _webViewDidRequestPasswordForQuickLookDocument:]): (-[PSONNavigationDelegate _webView:didStartLoadForQuickLookDocumentInMainFrameWithFileName:uti:]): (-[PSONNavigationDelegate _webView:didFinishLoadForQuickLookDocumentInMainFrame:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242027] by
-
- 6 edits in branches/safari-607-branch
Cherry-pick r241950. rdar://problem/48317455
REGRESSION(PSON) Scroll position is sometimes not restored on history navigation
https://bugs.webkit.org/show_bug.cgi?id=194924
<rdar://problem/48216125>
Reviewed by Geoffrey Garen.
Source/WebKit:
When process-swapping, we would create a new WebPage in the new process, which would
call restoreSessionInternal() to restore the HistoryItems based on the UIProcess's
backforward list. The issue is that this session restoring would send HistoryItem
updates back to the UIProcess. Without PSON, this would be unnecessary but harmless.
With PSON though, this may end up overwriting values set by the previous process,
such as the scroll position.
Address the issue by temporarily disabling the HistoryItem update notifications to
the UIProcess while restoring a session.
- UIProcess/API/Cocoa/WKBackForwardListItem.mm: (-[WKBackForwardListItem _scrollPosition]):
- UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::restoreSessionInternal):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242026] by
-
- 2 edits in branches/safari-607-branch/Tools
Cherry-pick r241948. rdar://problem/48317429
Unreviewed, disable API test added in r241928 on iOS.
The cache is not enabled on devices with less than 3GB of RAM.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242025] by
-
- 10 edits in branches/safari-607-branch
Cherry-pick r241928. rdar://problem/48317429
Discard cached processes when clearing website data store
https://bugs.webkit.org/show_bug.cgi?id=194894
Reviewed by Chris Dumez.
Source/WebKit:
Clear the process cache when clearing the website data store so that there is no way to infer
which site the user had visited by observing for which sites WebContent processes had been cached.
There is one sublty in WebsiteDataStore::removeData that we have to delay the clearing of
the web process cache until the next run loop because SuspendedPageProxy::~SuspendedPageProxy
invokes WebProcessProxy::maybeShutDown in the next run loop. We also have to disable the process
cache during this time as it would otherwise trigger the responsiveness check of WebContent process
can take arbitrarily long time.
- UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _processCacheCapacity]): Added for testing.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::addProcess): Avoid adding web processes to the cache while the suspended pages are being cleared.
- UIProcess/WebProcessCache.h: (WebKit::WebProcessCache::disabled const): Added. (WebKit::WebProcessCache::setDisabled): Added.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::handleMemoryPressureWarning): (WebKit::WebProcessPool::clearSuspendedPages): Added.
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::removeData):
Tools:
Added a test case.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: (TestWebKitAPI.ProcessSwap.NumberOfCachedProcesses): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242024] by
-
- 7 edits in branches/safari-607-branch
Cherry-pick r241915. rdar://problem/48298733
Layout Test fast/text/international/khmer-selection.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=191368
Reviewed by Brent Fulgham.
Source/WebCore:
GlyphBuffer's offset array wasn't getting filled by UniscribeController.
Our underlining code requires this array.
Uniscribe gives us a character -> glyph mapping, so we just have to compute
the inverse and give it to the GlyphBuffer.
This patch is written by Myles C. Maxfield.
Test: fast/text/international/khmer-selection.html.
- platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::add):
- platform/graphics/displaylists/DisplayListItems.cpp: (WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):
- platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::advance): (WebCore::UniscribeController::itemizeShapeAndPlace): (WebCore::UniscribeController::shapeAndPlaceItem):
- platform/graphics/win/UniscribeController.h:
LayoutTests:
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242023] by
-
- 17 edits1 add in branches/safari-607-branch
Cherry-pick r241899. rdar://problem/48317463
Crash under RemoteLayerTreePropertyApplier::applyProperties when reattaching to old process
https://bugs.webkit.org/show_bug.cgi?id=194845
<rdar://problem/47944579>
Reviewed by Antti Koivisto.
Source/WebKit:
New test: ProcessSwap.PageOverlayLayerPersistence
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged): Keep track of all properties that have ever changed on a layer, so we can re-send them if a layer moves between contexts.
- WebProcess/WebPage/DrawingArea.cpp: (WebKit::DrawingArea::~DrawingArea): (WebKit::DrawingArea::removeMessageReceiverIfNeeded):
- WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::layerHostDidFlushLayers): Make it possible to tear down DrawingArea's MessageReceiver before it is destroyed, so that we can keep two DrawingAreas alive in a single process for a short time.
(WebKit::DrawingArea::adoptLayersFromDrawingArea):
Add adoptLayersFromDrawingArea; see below for its only useful implementation.
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp: (WebKit::GraphicsLayerCARemote::GraphicsLayerCARemote): (WebKit::GraphicsLayerCARemote::~GraphicsLayerCARemote): (WebKit::GraphicsLayerCARemote::createPlatformCALayer): (WebKit::GraphicsLayerCARemote::createPlatformCALayerForEmbeddedView): (WebKit::GraphicsLayerCARemote::moveToContext):
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h: Make it possible to move a GraphicsLayerCARemote between RemoteLayerTreeContexts.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::create): (WebKit::PlatformCALayerRemote::createForEmbeddedView): (WebKit::PlatformCALayerRemote::~PlatformCALayerRemote): (WebKit::PlatformCALayerRemote::moveToContext):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm: (WebKit::PlatformCALayerRemoteCustom::create): (WebKit::PlatformCALayerRemoteCustom::clone const): Make it possible to move a PlatformCALayerRemote between RemoteLayerTreeContexts.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext): (WebKit::RemoteLayerTreeContext::adoptLayersFromContext): (WebKit::RemoteLayerTreeContext::layerDidEnterContext): (WebKit::RemoteLayerTreeContext::layerWillLeaveContext): (WebKit::RemoteLayerTreeContext::graphicsLayerDidEnterContext): (WebKit::RemoteLayerTreeContext::graphicsLayerWillLeaveContext): (WebKit::RemoteLayerTreeContext::layerWasCreated): Deleted. (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed): Deleted. Keep track of all GraphicsLayerCARemote instances in the context, like we do for PlatformCALayerRemote, so that we can update their context backpointers if needed.
Also make it possible to move all outstanding layers to a new context.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::adoptLayersFromDrawingArea):
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::reinitializeWebPage): When doing a DrawingArea swap, transition all layers from the old context to the new one. In order to do this, we temporarily keep both DrawingAreas alive, but make use of the new mechanism to remove the old one's MessageReceiver before installing the new one, so that destroying the old one later doesn't remove it (avoiding re-introducing bug 189481).
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241899 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 PM Changeset in webkit [242022] by
-
- 2 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r241830. rdar://problem/48248202
REGRESSION (r241788>): ASSERTION FAILED: !m_normalFlowListDirty in TestWebKitAPI.WebKit.ResizeReversePaginatedWebView test
https://bugs.webkit.org/show_bug.cgi?id=194866
Reviewed by Antti Koivisto.
r241788 removed some calls that updated layer lists (normal flow and z-order) during compositing updates, causing
a later call to RenderLayerCompositor::recursiveRepaintLayer() to assert when the lists were dirty. Fix by updating
the lists in RenderLayerCompositor::recursiveRepaintLayer(), as we do in various other places.
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:46 PM Changeset in webkit [242021] by
-
- 5 edits in branches/safari-607-branch/Source/WebKit
Cherry-pick r241128. rdar://problem/48317438
[macOS] API test times out after r241026
https://bugs.webkit.org/show_bug.cgi?id=194372
Reviewed by Alex Christensen.
The API test TestWebKitAPI.RenderingProgress.FirstMeaningfulPaint times out after r241026.
A new function pointer, layoutMilestones, is added to WKBundlePageLoaderClient, in order
for clients to decide which milestones they would like to listen for.
- WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (layoutMilestones): (setUpPageLoaderClient):
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: (WebKit::InjectedBundlePageLoaderClient::layoutMilestones const):
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:46 PM Changeset in webkit [242020] by
-
- 6 edits in branches/safari-607-branch
Apply patch. rdar://problem/48317433
- 8:41 PM Changeset in webkit [242019] by
-
- 46 edits2 adds19 deletes in trunk
Web Inspector: Change the InspectorOverlay to use native rather than canvas
https://bugs.webkit.org/show_bug.cgi?id=105023
<rdar://problem/13443692>
Reviewed by Brian Burg.
.:
- ManualTests/inspector/overlay-nodes.html: Added.
- ManualTests/inspector/overlay-rulers.html: Added.
Source/JavaScriptCore:
- inspector/protocol/OverlayTypes.json: Removed.
Now that the overlay is entirely generated in C++, we no longer need the special prototol
types for transferring data to a JavaScript context.
- inspector/protocol/Debugger.json:
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setOverlayMessage): Deleted.
RemoveDebugger.setOverlayMessagecommand as it hasn't been used and is no longer supported.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
Source/WebCore:
Should be no change in observed functionality.
- inspector/InspectorOverlay.h:
- inspector/InspectorOverlay.cpp:
(WebCore::truncateWithEllipsis): Added.
(WebCore::localPointToRootPoint): Added.
(WebCore::contentsQuadToCoordinateSystem):
(WebCore::effectiveElementForNode): Added.
(WebCore::quadToPath): Added.
(WebCore::drawOutlinedQuadWithClip): Added.
(WebCore::drawOutlinedQuad): Added.
(WebCore::drawFragmentHighlight): Added.
(WebCore::drawShapeHighlight): Added.
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::setIndicating):
(WebCore::InspectorOverlay::shouldShowOverlay const):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::setShowPaintRects): Added.
(WebCore::InspectorOverlay::showPaintRect):
(WebCore::InspectorOverlay::updatePaintRectsTimerFired):
(WebCore::InspectorOverlay::drawNodeHighlight):
(WebCore::InspectorOverlay::drawQuadHighlight):
(WebCore::InspectorOverlay::drawPaintRects):
(WebCore::InspectorOverlay::drawBounds): Added.
(WebCore::InspectorOverlay::drawRulers):
(WebCore::InspectorOverlay::drawElementTitle): Added.
(WebCore::contentsQuadToPage): Deleted.
(WebCore::InspectorOverlay::setPausedInDebuggerMessage): Deleted.
(WebCore::buildObjectForPoint): Deleted.
(WebCore::buildObjectForRect): Deleted.
(WebCore::buildArrayForQuad): Deleted.
(WebCore::buildObjectForHighlight): Deleted.
(WebCore::buildObjectForSize): Deleted.
(WebCore::InspectorOverlay::setShowingPaintRects): Deleted.
(WebCore::buildArrayForRendererFragments): Deleted.
(WebCore::localPointToRoot): Deleted.
(WebCore::appendPathCommandAndPoints): Deleted.
(WebCore::appendPathSegment): Deleted.
(WebCore::buildObjectForShapeOutside): Deleted.
(WebCore::buildObjectForElementData): Deleted.
(WebCore::InspectorOverlay::buildHighlightObjectForNode const): Deleted.
(WebCore::InspectorOverlay::buildObjectForHighlightedNodes const): Deleted.
(WebCore::InspectorOverlay::drawPausedInDebuggerMessage): Deleted.
(WebCore::InspectorOverlay::overlayPage): Deleted.
(WebCore::InspectorOverlay::forcePaint): Deleted.
(WebCore::InspectorOverlay::reset): Deleted.
(WebCore::evaluateCommandInOverlay): Deleted.
(WebCore::InspectorOverlay::evaluateInOverlay): Deleted.
(WebCore::InspectorOverlay::freePage): Deleted.
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setShowPaintRects):
Drive-by: renamesetShowingPaintRectsto better match the protocol.
- inspector/agents/page/PageDebuggerAgent.h:
- inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::PageDebuggerAgent):
(WebCore::PageDebuggerAgent::setOverlayMessage): Deleted.
RemoveDebugger.setOverlayMessagecommand as it hasn't been used and is no longer supported.
- inspector/InspectorController.h:
- inspector/InspectorController.cpp:
(WebCore::InspectorController::createLazyAgents):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::disconnectAllFrontends):
(WebCore::InspectorController::buildObjectForHighlightedNodes const): Deleted.
- testing/Internals.h:
- testing/Internals.idl:
- testing/Internals.cpp:
(WebCore::Internals::inspectorHighlightObject): Deleted.
- inspector/InspectorOverlayPage.css: Removed.
- inspector/InspectorOverlayPage.html: Removed.
- inspector/InspectorOverlayPage.js: Removed.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
Source/WebInspectorUI:
- UserInterface/Base/Main.js:
(WI.initializeTarget):
- UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
- UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
- Versions/Inspector-iOS-10.0.json:
- Versions/Inspector-iOS-10.3.json:
- Versions/Inspector-iOS-11.0.json:
- Versions/Inspector-iOS-11.3.json:
- Versions/Inspector-iOS-12.0.json:
- Versions/Inspector-iOS-12.2.json:
- Versions/Inspector-iOS-8.0.json:
- Versions/Inspector-iOS-9.0.json:
- Versions/Inspector-iOS-9.3.json:
Remove
Debugger.setOverlayMessagecommand as it hasn't been used and is no longer supported.
LayoutTests:
- http/tests/inspector/dom/shapes-test.js: Removed.
- inspector/dom/hideHighlight.html: Removed.
- inspector/dom/hideHighlight-expected.txt: Removed.
- inspector/dom/highlight-shape-outside.html: Removed.
- inspector/dom/highlight-shape-outside-expected.txt: Removed.
- inspector/dom/highlight-shape-outside-margin.html: Removed.
- inspector/dom/highlight-shape-outside-margin-expected.txt: Removed.
- inspector/dom/highlightFrame.html: Removed.
- inspector/dom/highlightFrame-expected.txt: Removed.
- inspector/dom/highlightNode.html: Removed.
- inspector/dom/highlightNode-expected.txt: Removed.
- inspector/dom/highlightNodeList.html: Removed.
- inspector/dom/highlightNodeList-expected.txt: Removed.
- inspector/dom/highlightSelector.html: Removed.
- inspector/dom/highlightSelector-expected.txt: Removed.
- platform/mac/TestExpectations:
- 8:27 PM Changeset in webkit [242018] by
-
- 27 edits1 add in trunk
Web Inspector: provide a way to make searches case sensitive or use a regular expression
https://bugs.webkit.org/show_bug.cgi?id=192527
Source/WebInspectorUI:
Reviewed by Joseph Pecoraro.
- UserInterface/Base/SearchUtilities.js: Added.
(WI.SearchUtilities.get defaultSettings):
(WI.SearchUtilities.createSettings):
(WI.SearchUtilities.regExpForString):
(WI.SearchUtilities.createSettingsButton):
(WI.SearchUtilities.createSettingsButton.toggleActive):
- UserInterface/Views/Main.css:
(.search-settings): Added.
(.search-settings > .glyph): Added.
(.search-settings:active > .glyph): Added.
(.search-settings.active > .glyph): Added.
(.search-settings:active.active > .glyph): Added.
Create static utility class for handling settings related to searching/filtering.
- UserInterface/Base/Setting.js:
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
Create default search settings that apply across WebInspector, unless a more specific
setting has been created that overrides it (e.g. the navigation sidebar or Search tab).
- UserInterface/Views/SearchSidebarPanel.js:
(WI.SearchSidebarPanel):
(WI.SearchSidebarPanel.prototype.performSearch.forEachMatch):
(WI.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WI.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WI.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WI.SearchSidebarPanel.prototype.performSearch.domSearchResults):
(WI.SearchSidebarPanel.prototype.performSearch.domCallback):
(WI.SearchSidebarPanel.prototype.performSearch):
- UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search > .search-bar):
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
Add a (*) settings "gear" after each<input type="search">that shows a contextmenu with
checkboxes for each search setting. Any settings changed for each input take precedence over
the default settings, but will match the corresponding default setting if it's changed.
- UserInterface/Views/SearchResultTreeElement.js:
(WI.SearchResultTreeElement.truncateAndHighlightTitle):
Use the length of the found text, rather than the length of the query.
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype._highlightSearchResults):
- UserInterface/Views/DataGrid.js:
(WI.DataGrid.prototype._updateFilter):
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype.performSearch):
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
- UserInterface/Views/ResourceHeadersContentView.js:
(WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs):
- UserInterface/Views/ResourceSecurityContentView.js:
(WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
- UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.customPerformSearch.searchResultCallback):
(WI.SourceCodeTextEditor.prototype.customPerformSearch):
- UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.performSearch):
Use the default search settings when searching/filtering.
- UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]:placeholder-shown::-webkit-search-cancel-button): Added.
Drive-by: prevent the (x) from appearing when no text has been entered.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Main.html:
LayoutTests:
<rdar://problem/46800955>
Reviewed by Joseph Pecoraro.
- inspector/debugger/search-scripts.html:
- inspector/debugger/search-scripts-expected.txt:
- inspector/page/searchInResources.html:
- inspector/page/searchInResources-expected.txt:
- inspector/page/resources/search-script.js:
- inspector/page/resources/search-stylesheet.css:
- inspector/page/resources/search-worker.js:
- inspector/page/resources/search-xhr.txt:
- 7:04 PM Changeset in webkit [242017] by
-
- 19 edits6 adds4 deletes in trunk
Web Inspector: make debounce Proxy into its own class
https://bugs.webkit.org/show_bug.cgi?id=194721
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
The
debounce/throttlefunctions leveraged aProxyto intercept the function call and
replace it with a "delayed" version. The issue with this is that it set the identifier for
the timer on the function itself, which is shared across all instances of a given class.
When different instances call the same delayed function, they'd clobber eachother's attempts
to delay work.
- UserInterface/Base/Debouncer.js: Added.
(Debouncer):
(Debouncer.prototype.force):
(Debouncer.prototype.delayForTime):
(Debouncer.prototype.delayForFrame):
(Debouncer.prototype.delayForMicrotask):
(Debouncer.prototype.cancel):
(Debouncer.prototype._execute):
- UserInterface/Base/Throttler.js: Added.
(Throttler):
(Throttler.prototype.force):
(Throttler.prototype.fire):
(Throttler.prototype.cancel):
(Throttler.prototype._execute):
- UserInterface/Base/Utilities.js:
- UserInterface/Views/BezierEditor.js:
(WI.BezierEditor):
- UserInterface/Views/ContentBrowser.js:
(WI.ContentBrowser):
(WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WI.ContentBrowser.prototype._currentContentViewDidChange):
(WI.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent): Deleted.
- UserInterface/Views/DOMTreeUpdater.js:
(WI.DOMTreeUpdater):
(WI.DOMTreeUpdater.prototype._nodeAttributeModified):
(WI.DOMTreeUpdater.prototype._nodeInserted):
(WI.DOMTreeUpdater.prototype._nodeRemoved):
- UserInterface/Views/NavigationSidebarPanel.js:
(WI.NavigationSidebarPanel):
(WI.NavigationSidebarPanel.prototype.closed):
(WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
(WI.NavigationSidebarPanel.prototype.updateFilter):
(WI.NavigationSidebarPanel.prototype.shown):
(WI.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WI.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
- UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView):
(WI.RecordingContentView.prototype.updateActionIndex):
(WI.RecordingContentView.prototype.hidden):
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WI.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
(WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
(WI.ResourceDetailsSidebarPanel):
- UserInterface/Views/ShaderProgramContentView.js:
(WI.ShaderProgramContentView):
- UserInterface/Views/SpringEditor.js:
(WI.SpringEditor.prototype._resetPreviewAnimation):
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype.set hidden):
(WI.TreeElement.prototype.didChange):
(WI.TreeElement.prototype._attach):
(WI.TreeElement.prototype._detach):
(WI.TreeElement.prototype.collapse):
(WI.TreeElement.prototype.expand):
(WI.TreeElement.prototype.reveal):
- UserInterface/Views/TreeOutline.js:
(WI.TreeOutline):
(WI.TreeOutline.prototype.registerScrollVirtualizer):
(WI.TreeOutline.prototype.get updateVirtualizedElementsDebouncer): Added.
(WI.TreeOutline.prototype._updateVirtualizedElements): Added.
(WI.TreeOutline.prototype.updateVirtualizedElements.walk): Deleted.
(WI.TreeOutline.prototype.updateVirtualizedElements): Deleted.
- UserInterface/Views/WebSocketContentView.js:
(WI.WebSocketContentView):
(WI.WebSocketContentView.prototype.shown):
(WI.WebSocketContentView.prototype._updateFramesSoon):
(WI.WebSocketContentView.prototype._updateFrames):
- UserInterface/Main.html:
- UserInterface/Test.html:
- .eslintrc:
LayoutTests:
- inspector/unit-tests/debouncer.html: Renamed from inspector/unit-tests/debounce.html:.
- inspector/unit-tests/debouncer-expected.txt: Renamed from inspector/unit-tests/debounce-expected.txt.
- inspector/unit-tests/throttler.html: Renamed from inspector/unit-tests/throttle.html:.
- inspector/unit-tests/throttler-expected.txt: Renamed from inspector/unit-tests/throttle-expected.txt.
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- 6:23 PM Changeset in webkit [242016] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed, fix indentation.
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.markModified):
- 6:17 PM Changeset in webkit [242015] by
-
- 12 edits in trunk/Source/JavaScriptCore
[JSC] Lazily create sentinel Map and Set buckets
https://bugs.webkit.org/show_bug.cgi?id=194975
Reviewed by Saam Barati.
If VM::canUseJIT() returns false, we can lazily initialize sentinel Map and Set buckets.
This patch adds getters to VM which lazily allocate these buckets. We eagerly initialize
them if VM::canUseJIT() returns true since they can be touched from DFG and FTL.
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::sentinelMapBucketValue):
(JSC::BytecodeIntrinsicRegistry::sentinelSetBucketValue):
- bytecode/BytecodeIntrinsicRegistry.h:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetMapBucketNext):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucketNext):
- runtime/MapConstructor.cpp:
(JSC::mapPrivateFuncMapBucketNext):
- runtime/SetConstructor.cpp:
(JSC::setPrivateFuncSetBucketNext):
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::sentinelSetBucketSlow):
(JSC::VM::sentinelMapBucketSlow):
- runtime/VM.h:
(JSC::VM::sentinelSetBucket):
(JSC::VM::sentinelMapBucket):
- 3:57 PM Changeset in webkit [242014] by
-
- 27 edits in trunk/Source
Finish removing String::format
https://bugs.webkit.org/show_bug.cgi?id=194893
Reviewed by Daniel Bates.
Source/JavaScriptCore:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::nameForRegister): Use makeString instead of String::format,
using the new "pad" function.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::lastModified const): Use makeString and pad.
- html/FTPDirectoryDocument.cpp:
(WebCore::processFileDateString): Ditto.
- mathml/MathMLElement.cpp:
(WebCore::convertToPercentageIfNeeded): Use makeString and FormattedNumber.
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::ResourceUsageOverlay::platformDraw): Use makeString and pad.
- page/linux/ResourceUsageOverlayLinux.cpp:
(WebCore::cpuUsageString): Use makeString, FormattedNumber, and pad.
(WebCore::gcTimerString): Use String::number.
- platform/DateComponents.cpp:
(WebCore::DateComponents::toStringForTime const): Use makeString and pad.
(WebCore::DateComponents::toString const): Ditto.
- platform/LocalizedStrings.cpp: Removed comment that mentioned String::format,
and that was also inaccurate.
- platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
Use makeString and pad.
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::drawText): Ditto.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo): Ditto.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::formatMediaControlsTime const): Ditto.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::getAssertion): Use makeString, attempting to fix
a problem where we passed an NSData * to format with a "%s"."
Source/WebKitLegacy/win:
- FullscreenVideoController.cpp:
(timeToString): Use makeString and pad.
Source/WTF:
- wtf/Assertions.cpp:
(WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
(WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
- wtf/HexNumber.h: Deleted unneeded toString function.
- wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
a bit. Use function templates for writeTo functions rather than having two of each.
Removed unused toString functions. Optimized case where we use have a UChar* and
a length of zero to not force the result to be 16-bit. Also gets rid of a small
NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
static member helper functions to compute string lengths. Added the pad function
and the PaddingSpecification struct template, so we can add padding to anything
we can turn into a string. Got rid of the special case overload for single
arguments, since it only worked for things that the String constructor can handle.
Instead we will now use StringTypeAdapter, which works for more types. Possibly
less optimal for some special cases, which we could specialize for later if we like.
- wtf/text/StringConcatenateNumbers.h: Ditto.
- wtf/text/StringOperators.h: Ditto.
- wtf/text/StringView.h: Ditto.
- wtf/text/WTFString.cpp:
(WTF::createWithFormatAndArguments): Deleted.
(WTF::String::format): Deleted.
- wtf/text/WTFString.h: Deleted declaration of String::format.
- 2:39 PM Changeset in webkit [242013] by
-
- 4 edits in trunk
[WPE][GTK] Remove user agent quirk for washingtonpost.com
https://bugs.webkit.org/show_bug.cgi?id=194981
Reviewed by Žan Doberšek.
Source/WebCore:
Remove user agent quirk for washingtonpost.com because we support JPEG 2000 now.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
- 2:37 PM Changeset in webkit [242012] by
-
- 4 edits in trunk/Source/WebKit
[WPE] Install MemoryPressureHandler in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=194617
Reviewed by Žan Doberšek.
Currently only GTK and Cocoa ports run MemoryPressureHandler in the UI process. WPE should
too.
We need @no-unify to avoid changing the unified source bundles under API/, which are
notoriously fragile. (WebMemoryPressureHandler.cpp sorts just above API/.)
- SourcesWPE.txt:
- UIProcess/WebMemoryPressureHandler.cpp:
(WebKit::installMemoryPressureHandler):
- UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitialize):
Feb 23, 2019:
- 7:18 PM Changeset in webkit [242011] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove dead code: AdjacencyList::justOneChild()
https://bugs.webkit.org/show_bug.cgi?id=194965
Reviewed by Sam Weinig.
- dfg/DFGAdjacencyList.h:
(JSC::DFG::AdjacencyList::justOneChild const): Deleted.
- 7:03 PM Changeset in webkit [242010] by
-
- 4 edits in trunk/Source/WebKit
Give DrawingAreas their own identifiers
https://bugs.webkit.org/show_bug.cgi?id=194969
<rdar://problem/48154508>
Unreviewed, fix API test debug assertion failures after r241988.
We do not support sending an ObjectIdentifier that is 0 via IPC so update WebPageProxy::CreateNewPage
IPC to return an Optional<WebPageCreationParameters> instead of a WebPageCreationParameters. It returns
nullopt when there this no UIClient or the client did not create the page, instead of returning a
default-initialized WebPageCreationParameters.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
- 5:07 PM Changeset in webkit [242009] by
-
- 3 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r241634 - RELEASE_ASSERT at com.apple.JavaScriptCore: JSC::jsSubstringOfResolved
https://bugs.webkit.org/show_bug.cgi?id=194558
Reviewed by Saam Barati.
JSTests:
New regression test.
- stress/regexp-unicode-within-string.js: Added.
Source/JavaScriptCore:
Added an in bounds check before the read of the next character for Unicode regular expressions
for pattern generation that didn't already have such checks.
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
- 5:07 PM Changeset in webkit [242008] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r241626 - Crash in the hit testing code via HTMLPlugInElement::isReplacementObscured()
https://bugs.webkit.org/show_bug.cgi?id=194691
Reviewed by Simon Fraser.
Source/WebCore:
The crash was caused by HTMLPlugInElement::isReplacementObscured updating the document
without updating the layout of ancestor documents (i.e. documents in which frame owner
elements appear) even though it hit-tests against the top-level document's RenderView.
Fixed the bug by updating the layout of the top-level document as needed.
Test: plugins/unsupported-plugin-with-replacement-in-iframe-crash.html
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::isReplacementObscured):
LayoutTests:
Added a regression test. It hits the newly added debug assertion without the fix.
- platform/mac-wk1/TestExpectations: Skip the test since DumpRenderTree doesn't support
testRunner.setPluginSupportedMode.
- plugins/unsupported-plugin-with-replacement-in-iframe-crash-expected.txt: Added.
- plugins/unsupported-plugin-with-replacement-in-iframe-crash.html: Added.
- 5:07 PM Changeset in webkit [242007] by
-
- 4 edits4 adds in releases/WebKitGTK/webkit-2.22
Merged r241615 - SamplingProfiler::stackTracesAsJSON() should escape strings.
https://bugs.webkit.org/show_bug.cgi?id=194649
<rdar://problem/48072386>
Reviewed by Saam Barati.
JSTests:
- stress/sampling-profiler-stack-trace-with-double-quote-in-function-name.js: Added.
- stress/type-profiler-with-double-quote-in-constructor-name.js: Added.
- stress/type-profiler-with-double-quote-in-field-name.js: Added.
- stress/type-profiler-with-double-quote-in-optional-field-name.js: Added.
Source/JavaScriptCore:
Ditto for TypeSet::toJSONString() and TypeSet::toJSONString().
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::stackTracesAsJSON):
- runtime/TypeSet.cpp:
(JSC::TypeSet::toJSONString const):
(JSC::StructureShape::toJSONString const):
- 5:07 PM Changeset in webkit [242006] by
-
- 5 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r241613 - [JSC] CodeBlock::jettison should clear related watchpoints
https://bugs.webkit.org/show_bug.cgi?id=194544
Reviewed by Mark Lam.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
- dfg/DFGCommonData.h:
(JSC::DFG::CommonData::clearWatchpoints): Added.
- dfg/CommonData.cpp:
(JSC::DFG::CommonData::clearWatchpoints): Added.
- 5:06 PM Changeset in webkit [242005] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Tools
Merged r241553 - Unreviewed, build fix after r241480
- TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator initWithWebView:]):
- 5:06 PM Changeset in webkit [242004] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r241499 - Crash in DOMTimer::fired
https://bugs.webkit.org/show_bug.cgi?id=194638
Reviewed by Brent Fulgham.
Source/WebCore:
This patch continues the saga of hunting down timer related crashes after r239814, r225985, r227934.
The crash was caused by the bug that we don't remove a DOMTimer from NestedTimersMap if a DOMTimer
is created & installed inside another DOMTimer's callback (via execute call in DOMTimer::fired).
Fixed the crash by using a Ref in NestedTimersMap. This will keep the timer alive until we exit
from DOMTimer::fired. Because DOMTimer::fired always calls stopTracking() which clears the map
we would not leak these DOM timers.
We could, alternatively, use WeakPtr in NestedTimersMap but that would unnecessarily increase the
size of DOMTimer for a very marginal benefit of DOMTimer objcets being deleted slightly earlier.
Deleting itself in DOMTimer's destructor involves more logic & house keeping in the timer code,
and is no longer the preferred approach when dealing with these classes of bugs in WebKit.
Test: fast/dom/timer-destruction-during-firing.html
- page/DOMTimer.cpp:
(WebCore::NestedTimersMap::add):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
LayoutTests:
Added a regression test. It needs debug assertions without the fix.
- fast/dom/timer-destruction-during-firing-expected.txt: Added.
- fast/dom/timer-destruction-during-firing.html: Added.
- 5:06 PM Changeset in webkit [242003] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merged r227934 - Add a release assertion to ensure timers are deleted in the right thread
https://bugs.webkit.org/show_bug.cgi?id=182351
Reviewed by David Kilzer.
Added a relese assertion in ~TimerBase that the current thread is the one in which the timer was created.
We use canAccessThreadLocalDataForThread for this purpose since the condition is more complicated
when WebThread is being used.
- platform/Timer.cpp:
(WebCore::TimerBase::~TimerBase): Added the assertion.
- platform/Timer.h:
(WebCore::TimerBase::m_thread): Always store the current thread in a timer.
- 5:06 PM Changeset in webkit [242002] by
-
- 6 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merged r239814 - ThreadTimers should not store a raw pointer in its heap
https://bugs.webkit.org/show_bug.cgi?id=192975
<rdar://problem/46893946>
Reviewed by Geoffrey Garen.
Right now, ThreadTimers's heap data structure stores a raw pointer to TimerBase. In order to harden the timer code,
this patch replaces it with ThreadTimerHeapItem, a newly introduced struct, which effectively acks like
WeakReference<TimerBase*> as the timer heap and TimerBase both store RefPtr to it, and TimerBase's destructor clears
the raw pointer back to TimerBase*.
This approach was taken instead of an out-right adoptation of WeakPtr since the heap data structure requires each node
in the heap to have a fixed "priority" yet WeakPtr with no valid pointer back to TimerBase would effectively lose its
"priority" thereby corrupting the heap data structure. That is, each item in the heap must remember its fire time and
insertion order even when the underlying TimerBase had gone away (this should never happen but the whole point of this
hardening is to make it work even in the precense of such a bug).
This patch also moves the heap index in TimerBase to ThreadTimerHeapItem, and replaces the pointer to the heap vector
in TimerBase by a reference to ThreadTimers in ThreadTimerHeapItem. Note that ThreadTimers is a per-thread singleton.
The correctness of this hardening was tested by commenting out the call to stop() and !isInHeap() assertion in
TimerBase::~TimerBase() as well as the !isInHeap() assertion in ThreadTimerHeapItem::clearTimer() and observing that
layout tests run successfully without hitting any debug assertions.
No new tests since there should be no observable behavior difference.
- WebCore.xcodeproj/project.pbxproj: Export ThreadTimers.h as a private header since it's now included in Timer.h
- platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::updateSharedTimer): Delete ThreadTimerHeapItem's with nullptr TimerBase* (TimerBase had
already been deleted). This should only happen when TimerBase's destructor failed to remove itself from the timer heap,
which should never happen.
(WebCore::ThreadTimers::sharedTimerFiredInternal): Ditto. Also removed the redundant code which had removed the timer
from the heap since setNextFireTime does the removal already.
- platform/ThreadTimers.h: Outdented the whole file.
(WebCore::ThreadTimers::timerHeap): We use Vector<RefPtr<ThreadTimerHeapItem>> instead of Vector<Ref<~>> since Ref<~>
doesn't have a copy constructor which is used by std::push_heap.
(WebCore::ThreadTimerHeapItem): Added.
(WebCore::ThreadTimerHeapItem::hasTimer const): Added.
(WebCore::ThreadTimerHeapItem::setNotInHeap): Added. ThreadTimerHeapItem uses unsigned -1 as the single value which
signifies the item not being in the heap instead of all negative values as in the old code in TimerBase.
(WebCore::ThreadTimerHeapItem::isInHeap const): Added.
(WebCore::ThreadTimerHeapItem::isFirstInHeap const): Added.
(WebCore::ThreadTimerHeapItem::timer): Added.
(WebCore::ThreadTimerHeapItem::clearTimer): Added.
(WebCore::ThreadTimerHeapItem::heapIndex const): Added.
(WebCore::ThreadTimerHeapItem::setHeapIndex): Added.
(WebCore::ThreadTimerHeapItem::timerHeap const): Added.
- platform/Timer.cpp:
(WebCore::threadGlobalTimerHeap): This function is now only used in assertions.
(WebCore::ThreadTimerHeapItem::ThreadTimerHeapItem): Added.
(WebCore::ThreadTimerHeapItem::create): Added.
(WebCore::TimerHeapPointer::TimerHeapPointer):
(WebCore::TimerHeapPointer::operator-> const):
(WebCore::TimerHeapReference::TimerHeapReference): Added a copy constructor.
(WebCore::TimerHeapReference::copyRef const): Added.
(WebCore::TimerHeapReference::operator RefPtr<ThreadTimerHeapItem>& const):
(WebCore::TimerHeapPointer::operator* const):
(WebCore::TimerHeapReference::operator=): Use move assignment operator.
(WebCore::TimerHeapReference::swapWith):
(WebCore::TimerHeapReference::updateHeapIndex): Extracted to share code between two verions of operator=.
(WebCore::swap):
(WebCore::TimerHeapIterator::TimerHeapIterator):
(WebCore::TimerHeapIterator::operator-> const):
(WebCore::TimerHeapLessThanFunction::compare): Added variants which take RefPtr<ThreadTimerHeapItem>.
(WebCore::TimerHeapLessThanFunction::operator() const):
(WebCore::TimerBase::TimerBase):
(WebCore::TimerBase::~TimerBase):Clear the raw pointer in ThreadTimerHeapItem.
(WebCore::TimerBase::stop):
(WebCore::TimerBase::nextFireInterval const):
(WebCore::TimerBase::checkHeapIndex const): Added the consistency check for other items in the heap.
(WebCore::TimerBase::checkConsistency const):
(WebCore::TimerBase::heapDecreaseKey):
(WebCore::TimerBase::heapDelete):
(WebCore::TimerBase::heapDeleteMin):
(WebCore::TimerBase::heapIncreaseKey):
(WebCore::TimerBase::heapInsert):
(WebCore::TimerBase::heapPop):
(WebCore::TimerBase::heapPopMin):
(WebCore::TimerBase::heapDeleteNullMin): Added. Used to delete ThreadTimerHeapItem which no longer has a valid TimerBase.
(WebCore::parentHeapPropertyHolds):
(WebCore::childHeapPropertyHolds):
(WebCore::TimerBase::hasValidHeapPosition const):
(WebCore::TimerBase::updateHeapIfNeeded): Tweaked the heap index assertion as heapIndex() itself would assert when called
on an item with an invalid (-1) heap index.
(WebCore::TimerBase::setNextFireTime): Create ThreadTimerHeapItem. Note m_heapItem is never cleared until this TimerBase
is deleted.
(WebCore::TimerHeapReference::operator TimerBase* const): Deleted.
- platform/Timer.h:
(WebCore::TimerBase): Replaced m_nextFireTime, m_heapIndex, m_heapInsertionOrder, and m_cachedThreadGlobalTimerHeap
by m_heapItem, RefPtr to an ThreadTimerHeapItem.
(WebCore::TimerBase::augmentFireInterval):
(WebCore::TimerBase::inHeap const):
(WebCore::TimerBase::nextFireTime const):
(WebCore::TimerBase::isActive const):
(WebCore::TimerBase:: const): Deleted.
- 5:06 PM Changeset in webkit [242001] by
-
- 30 edits4 adds in releases/WebKitGTK/webkit-2.22
Merged r241480 - Further restricting webarchive loads
https://bugs.webkit.org/show_bug.cgi?id=194567
<rdar://problem/47610130>
Reviewed by Youenn Fablet.
Source/WebCore:
This patch futher restricts main frame webarchive loads to the followings:
1) loaded by clients;
2) loaded by drag;
3) reloaded from any of the previous two.
It moves setAlwaysAllowLocalWebarchive, which is used for testing only, from Document
to FrameLoader such that the option is remembered during redirections.
Covered by API tests.
- dom/Document.h:
(WebCore::Document::setAlwaysAllowLocalWebarchive): Deleted.
(WebCore::Document::alwaysAllowLocalWebarchive const): Deleted.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::disallowWebArchive const):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::setAllowsWebArchiveForMainFrame):
(WebCore::DocumentLoader::allowsWebArchiveForMainFrame):
- loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setIsRequestFromClientOrUserInput):
(WebCore::FrameLoadRequest::isRequestFromClientOrUserInput):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reload):
- loader/FrameLoader.h:
(WebCore::FrameLoader::setAlwaysAllowLocalWebarchive):
(WebCore::FrameLoader::alwaysAllowLocalWebarchive const):
- page/DragController.cpp:
(WebCore::DragController::performDragOperation):
- testing/Internals.cpp:
(WebCore::Internals::setAlwaysAllowLocalWebarchive const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
Set a flag to indicate a load is started from clients.
Tools:
Besides adding API tests, this patch also enhances DragAndDropSimulator to allow
navigations on drop.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/LoadWebArchive.mm: Added.
(-[TestLoadWebArchiveNavigationDelegate webView:didFinishNavigation:]):
(-[TestLoadWebArchiveNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[TestLoadWebArchiveNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/helloworld.webarchive: Added.
- TestWebKitAPI/Tests/mac/load-web-archive-1.html: Added.
- TestWebKitAPI/Tests/mac/load-web-archive-2.html: Added.
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator _webView:dragDestinationActionMaskForDraggingInfo:]):
LayoutTests:
- platform/mac/fast/loader/webarchive-encoding-respected.html:
- webarchive/loading/cache-expired-subresource.html:
- webarchive/loading/javascript-url-iframe-crash.html:
- webarchive/loading/mainresource-null-mimetype-crash.html:
- webarchive/loading/missing-data.html:
- webarchive/loading/object.html:
- webarchive/loading/test-loading-archive-subresource-null-mimetype.html:
- webarchive/loading/test-loading-archive-subresource.html:
- webarchive/loading/test-loading-archive.html:
- webarchive/loading/test-loading-top-archive.html:
- webarchive/loading/video-in-webarchive.html:
- 5:06 PM Changeset in webkit [242000] by
-
- 11 edits in releases/WebKitGTK/webkit-2.22
Merged r241289 - AXObjectCache::childrenChanged shouldn't update layout or style during another style recalc
https://bugs.webkit.org/show_bug.cgi?id=182280
<rdar://problem/37018386>
Reviewed by Alan Bujtas.
Source/WebCore:
Remove the possibility that changing children calls back into updating layout by
handling children changes in a deferred manner.
This follows the same architecture as many other deferred changes, but also requires us to check deferred changes
in updateBackingStore, because things like aria-hidden changes won't trigger a layout, but will require us to update children.
A few tests had to be modified to no longer change the tree and then check the children immediately.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::prepareForDocumentDestruction):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore):
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertToNSArray):
(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
LayoutTests:
- accessibility/aria-hidden-update.html:
- accessibility/aria-hidden-updates-alldescendants.html:
- accessibility/image-load-on-delay.html:
- accessibility/mac/aria-hidden-changes-for-non-ignored-elements.html:
- accessibility/removed-anonymous-block-child-causes-crash.html:
- 5:05 PM Changeset in webkit [241999] by
-
- 14 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r241228 - Nodes that rely on being dominated by CheckInBounds should have a child edge to it
https://bugs.webkit.org/show_bug.cgi?id=194334
<rdar://problem/47844327>
Reviewed by Mark Lam.
JSTests:
- stress/check-in-bounds-should-be-a-child-use.js: Added.
(func):
Source/JavaScriptCore:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertToHasIndexedProperty):
- dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGNodeType.h:
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCheckInBounds):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
- 4:57 PM Changeset in webkit [241998] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, fix find/replace error from r232178
Looks like this was the only such error in that commit.
- wtf/URLHelpers.cpp:
(WTF::URLHelpers::isLookalikeCharacter):
- 4:03 PM Changeset in webkit [241997] by
-
- 16 edits6 deletes in trunk/Source
Remove remnants of iOS WK1 scrolling tree code
https://bugs.webkit.org/show_bug.cgi?id=194980
Reviewed by Sam Weinig.
Source/WebCore:
Remove ScrollingTreeIOS and ScrollingCoordinatorIOS which were never instantiated,
to reduce maintenance costs and simplify.
Merge ScrollingTreeFrameScrollingNodeIOS into ScrollingTreeFrameScrollingNodeRemoteIOS
since that was the only concrete subclass, removing code which never applies to iOS WK2
(e.g. the synchronous scrolling code path).
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/FrameView.h:
- page/scrolling/ScrollingCoordinator.cpp:
- page/scrolling/ScrollingTree.h:
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::handleWheelEvent):
- page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::updateLayersAfterDelegatedScroll): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrollableAreaSize const): Deleted.
(WebCore::ScrollingTreeScrollingNode::totalContentsSize const): Deleted.
(WebCore::ScrollingTreeScrollingNode::horizontalSnapOffsets const): Deleted.
(WebCore::ScrollingTreeScrollingNode::verticalSnapOffsets const): Deleted.
(WebCore::ScrollingTreeScrollingNode::horizontalSnapOffsetRanges const): Deleted.
(WebCore::ScrollingTreeScrollingNode::verticalSnapOffsetRanges const): Deleted.
(WebCore::ScrollingTreeScrollingNode::currentHorizontalSnapPointIndex const): Deleted.
(WebCore::ScrollingTreeScrollingNode::currentVerticalSnapPointIndex const): Deleted.
(WebCore::ScrollingTreeScrollingNode::setCurrentHorizontalSnapPointIndex): Deleted.
(WebCore::ScrollingTreeScrollingNode::setCurrentVerticalSnapPointIndex): Deleted.
(WebCore::ScrollingTreeScrollingNode::useDarkAppearanceForScrollbars const): Deleted.
(WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition const): Deleted.
(WebCore::ScrollingTreeScrollingNode::reachableContentsSize const): Deleted.
(WebCore::ScrollingTreeScrollingNode::parentRelativeScrollableRect const): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrollOrigin const): Deleted.
(WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand const): Deleted.
(WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand): Deleted.
(WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity const): Deleted.
(WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity const): Deleted.
(WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar const): Deleted.
(WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar const): Deleted.
(WebCore::ScrollingTreeScrollingNode::canHaveScrollbars const): Deleted.
(WebCore::ScrollingTreeScrollingNode::expectsWheelEventTestTrigger const): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrollContainerLayer const): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrolledContentsLayer const): Deleted.
- page/scrolling/ios/ScrollingCoordinatorIOS.h: Removed.
- page/scrolling/ios/ScrollingCoordinatorIOS.mm: Removed.
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Removed.
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Removed.
- page/scrolling/ios/ScrollingTreeIOS.cpp: Removed.
- page/scrolling/ios/ScrollingTreeIOS.h: Removed.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
Source/WebKit:
Remove ScrollingTreeIOS and ScrollingCoordinatorIOS which were never instantiated.
Merge ScrollingTreeFrameScrollingNodeIOS into ScrollingTreeFrameScrollingNodeRemoteIOS,
removing code which never applies to iOS WK2 (e.g. the synchronous scrolling code path).
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::ScrollingTreeFrameScrollingNodeRemoteIOS):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::minimumScrollPosition const):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::maximumScrollPosition const):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::scrollPosition const):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::setScrollPosition):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::setScrollLayerPosition):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateChildNodesAfterScroll):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterDelegatedScroll):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterViewportChange):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterAncestorChange):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- 3:24 PM Changeset in webkit [241996] by
-
- 24 edits1 copy3 adds2 deletes in trunk
[WebGPU] Buffer updates part 1: async mapping functions, unmap, and destroy
https://bugs.webkit.org/show_bug.cgi?id=194665
Reviewed by Dean Jackson.
Source/WebCore:
Test: map-write-buffers.html. Other tests updated to match new API.
- Modules/webgpu/WebGPUBindGroupDescriptor.cpp: Added.
(WebCore::validateBufferBindingType): Ensure buffer binding usages match the binding type.
(WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const): Logic moved out from WebGPUDevice.cpp.
- Modules/webgpu/WebGPUBindGroupDescriptor.h:
- Modules/webgpu/WebGPUBuffer.cpp: Added GPUBuffer functionality.
(WebCore::WebGPUBuffer::create):
(WebCore::WebGPUBuffer::WebGPUBuffer):
(WebCore::WebGPUBuffer::mapReadAsync):
(WebCore::WebGPUBuffer::mapWriteAsync):
(WebCore::WebGPUBuffer::unmap):
(WebCore::WebGPUBuffer::destroy):
(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback): Register a mapping request on the GPUBuffer, if valid.
- Modules/webgpu/WebGPUBuffer.h:
(WebCore::WebGPUBuffer::buffer const):
(WebCore::WebGPUBuffer::mapping const): Deleted.
- Modules/webgpu/WebGPUBuffer.idl: Update to latest API and enable every function except setSubData.
- Modules/webgpu/WebGPUCommandBuffer.cpp:
(WebCore::WebGPUCommandBuffer::beginRenderPass): Renamed descriptor conversion method.
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createBuffer const): Update to non-nullable return type.
(WebCore::WebGPUDevice::createBindGroup const): Move descriptor validation logic to descriptor implementation.
- Modules/webgpu/WebGPUDevice.h:
- Modules/webgpu/WebGPURenderPassDescriptor.cpp:
(WebCore::WebGPURenderPassDescriptor::asGPURenderPassDescriptor const): Renamed from validateAndConvertToGPUVersion.
- Modules/webgpu/WebGPURenderPassEncoder.cpp:
(WebCore::WebGPURenderPassEncoder::setVertexBuffers): Add validation for submitted buffers.
- platform/graphics/gpu/GPUBuffer.cpp: Added.
(WebCore::GPUBuffer::PendingMappingCallback::PendingMappingCallback): New struct for retaining a reference to mapping callbacks.
- platform/graphics/gpu/GPUBuffer.h: Add functionality to retain callbacks and usage bits.
(WebCore::GPUBuffer::isVertex const):
(WebCore::GPUBuffer::isUniform const):
(WebCore::GPUBuffer::isStorage const):
(WebCore::GPUBuffer::isReadOnly const):
(WebCore::GPUBuffer::PendingMapPromise::create):
(WebCore::GPUBuffer::isMappable const):
(WebCore::GPUBuffer::isMapWriteable const):
(WebCore::GPUBuffer::isMapReadable const):
(WebCore::GPUBuffer::mapping const): Deleted.
- platform/graphics/gpu/GPUBufferUsage.h: enum class cannot be logical ORed together.
- platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::tryCreateBuffer const): Renamed from createBuffer.
(WebCore::GPUDevice::createBuffer const): Deleted.
- platform/graphics/gpu/GPUDevice.h:
- platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
(WebCore::GPUBuffer::tryCreateSharedBuffer): Attempt to create a MTLBuffer with shared memory.
(WebCore::GPUBuffer::tryCreate): No longer use Gigacage-allocated memory for MTLBuffer.
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::~GPUBuffer):
(WebCore::GPUBuffer::registerMappingCallback): Register the provided callback to be executed when the staging buffer can be safely exposed.
(WebCore::GPUBuffer::stagingBufferForRead): Prepare the arrayBuffer for reading and run the mapping callback.
(WebCore::GPUBuffer::stagingBufferForWrite): Ditto, but for writing.
(WebCore::GPUBuffer::unmap): If needed, copy the staging ArrayBuffer to the MTLBuffer. Unregister any mapping callback.
(WebCore::GPUBuffer::destroy): Stub implementation for now. Frees the MTLBuffer as soon as possible.
(WebCore::GPUBuffer::create): Deleted.
- platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:
(WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder): Ensure only read-only GPUBuffers are used as read-only on the GPU.
Add symbols for new files:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
Rewrite buffers.html -> map-write-buffers.html to test new functionality. Rewrite other affected
tests to use mapWriteAsync.
- webgpu/buffer-resource-triangles.html:
- webgpu/buffers-expected.txt: Renamed to map-write-buffers-expected.txt.
- webgpu/buffers.html: Renamed to map-write-buffers.html.
- webgpu/depth-enabled-triangle-strip.html:
- webgpu/map-write-buffers-expected.txt: Renamed from buffers-expected.txt.
- webgpu/map-write-buffers.html: Renamed from buffers.html.
- webgpu/vertex-buffer-triangle-strip.html:
- platform/mac/TestExpectations: Skip all webgpu tests on macOS 10.12 bots.
- 12:49 PM Changeset in webkit [241995] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix -Wunused-param warning
- jsc.cpp:
- 11:11 AM Changeset in webkit [241994] by
-
- 1 copy in tags/Safari-608.1.5.1.4
Tag Safari-608.1.5.1.4.
- 11:03 AM Changeset in webkit [241993] by
-
- 7 edits in branches/safari-607-branch/Source
Versioning.
- 11:01 AM Changeset in webkit [241992] by
-
- 1 copy in tags/Safari-607.1.37
Tag Safari-607.1.37.
- 10:15 AM Changeset in webkit [241991] by
-
- 4 edits in trunk/Source
Add an exception check and some assertions in StringPrototype.cpp.
https://bugs.webkit.org/show_bug.cgi?id=194962
<rdar://problem/48013416>
Reviewed by Yusuke Suzuki and Saam Barati.
Source/JavaScriptCore:
- runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
Source/WTF:
Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
for assertion purpose only on debug builds but sacrifices no performance on
release builds.
- wtf/CheckedArithmetic.h:
(WTF::AssertNoOverflow::overflowed):
(WTF::AssertNoOverflow::clearOverflow):
(WTF::AssertNoOverflow::crash):
(WTF::AssertNoOverflow::hasOverflowed const):
(WTF::observesOverflow):
(WTF::observesOverflow<AssertNoOverflow>):
(WTF::safeAdd):
(WTF::safeSub):
(WTF::safeMultiply):
(WTF::Checked::operator+=):
(WTF::Checked::operator-=):
(WTF::Checked::operator*=):
(WTF::operator+):
(WTF::operator-):
(WTF::operator*):
- 10:01 AM Changeset in webkit [241990] by
-
- 36 edits in trunk
Add new mac target numbers
https://bugs.webkit.org/show_bug.cgi?id=194955
Reviewed by Tim Horton.
Source/bmalloc:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebCore:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WTF:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Tools:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
- MiniBrowser/Configurations/Base.xcconfig:
- TestWebKitAPI/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/Base.xcconfig:
- 8:11 AM Changeset in webkit [241989] by
-
- 13 edits in trunk
AX: WebKit is incorrectly mapping the <meter> element to progressbar
https://bugs.webkit.org/show_bug.cgi?id=164051
<rdar://problem/29055615>
Reviewed by Joanmarie Diggs.
Source/WebCore:
Add a specific role for meter and map that to the appropriate mac role.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::isProgressIndicator const):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isRangeControl const):
(WebCore::AccessibilityObject::computedRoleString const):
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::roleValue const):
- accessibility/AccessibilityProgressIndicator.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
LayoutTests:
- platform/mac-wk2/accessibility/roles-exposed-expected.txt:
- platform/mac/accessibility/meter-element-expected.txt:
- platform/mac/accessibility/roles-exposed-expected.txt: