⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 28, 2019:

10:09 PM Changeset in webkit [246949] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Revise WebContent sandbox based on seed feedback
https://bugs.webkit.org/show_bug.cgi?id=199339
<rdar://problem/49609201>

Reviewed by Alexey Proskuryakov.

Unblock syscall needed by CoreText.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
8:48 PM Changeset in webkit [246948] by timothy_horton@apple.com
  • 8 edits in trunk/Source

iOS WebKit2 find-in-page indicator doesn't move with 'overflow: scroll'
https://bugs.webkit.org/show_bug.cgi?id=175032
<rdar://problem/29346482>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectionBounds const):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:

Make selectionBounds' clipToVisibleContent param an enum class.

  • page/TextIndicator.cpp:

(WebCore::initializeIndicator):
Save the un-clipped selection rect; otherwise we'll frequently save 0, 0
here when finding a match that is off-screen.

Source/WebKit:

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):
(WebKit::FindController::didScrollAffectingFindIndicatorPosition):
Adopt the macOS code that notices that the find highlight doesn't match
its original position, but instead of hiding the highlight like we do on macOS,
update it. We do this asynchronously to avoid mutating the layer tree
in the middle of painting, which is not /truly/ unsafe, but definitely
non-ideal and causes fun flashes.

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::updateFindIndicator):
Store m_findIndicatorRect when updating the indicator, just like we do on macOS.

4:35 PM Changeset in webkit [246947] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix attempt after r246928.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _closeAllMediaPresentations]):

4:19 PM Changeset in webkit [246946] by Justin Michaud
  • 8 edits
    3 adds in trunk

Add b3 macro lowering for CheckMul on arm64
https://bugs.webkit.org/show_bug.cgi?id=199251

Reviewed by Robin Morisset.

JSTests:

  • microbenchmarks/check-mul-constant.js: Added.

(doTest):

  • microbenchmarks/check-mul-no-constant.js: Added.

(doTest):

  • microbenchmarks/check-mul-power-of-two.js: Added.

(doTest):

Source/JavaScriptCore:

  • Lower CheckMul for 32-bit arguments on arm64 into a mul and then an overflow check.
  • Add a new opcode to air on arm64 for smull (multiplySignExtend32).
  • Fuse sign extend 32 + mul into smull (taking two 32-bit arguments and producing 64 bits).
  • 1.25x speedup on power of two microbenchmark, 1.15x speedup on normal constant microbenchmark, and no change on the no-constant benchmark.

Also, skip some of the b3 tests that were failing before this patch so that the new tests can run
to completion.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplySignExtend32):

  • assembler/testmasm.cpp:

(JSC::testMul32SignExtend):
(JSC::run):

  • b3/B3LowerMacros.cpp:
  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testMulArgs32SignExtend):
(JSC::B3::testMulImm32SignExtend):
(JSC::B3::testMemoryFence):
(JSC::B3::testStoreFence):
(JSC::B3::testLoadFence):
(JSC::B3::testPinRegisters):
(JSC::B3::run):

3:50 PM Changeset in webkit [246945] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

unable to build WebRTC for iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=199337
<rdar://problem/52020841>

Reviewed by Tim Horton.

Run the compiled yasm with DYLD_ROOT_PATH=/
in order to convince dyld that it can load
the simulator binary on macOS.

  • libwebrtc.xcodeproj/project.pbxproj:
3:48 PM Changeset in webkit [246944] by rmorisset@apple.com
  • 2 edits in trunk/Tools

Adding myself as a reviewer in contributors.json.

3:27 PM Changeset in webkit [246943] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Text autosizing][iPadOS] bing.com is hard to read even with boosted text because of the line height
https://bugs.webkit.org/show_bug.cgi?id=199318
<rdar://problem/51826096>

Reviewed by Wenson Hsieh.

Source/WebCore:

Initial implementation of line height boosting on iPadOs. It enlarges line height in certain cases to improve readability when the text content feels too dense.
It kicks in only for relatively small text (12px) where it slightly (1.25x) changes the line height to widen the gap between lines.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyleForTextAutosizing):

LayoutTests:

  • fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/line-height-boosting.html: Added.
3:24 PM Changeset in webkit [246942] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make getHostnamesWithCookies more robust
https://bugs.webkit.org/show_bug.cgi?id=199334
<rdar://problem/51860593>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-06-28
Reviewed by Brent Fulgham.

Crash logs suggest either httpCookies is returning a nil cookie or a cookie without a domain.
This should not happen, but if it does we shouldn't crash.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::getHostnamesWithCookies):

3:21 PM Changeset in webkit [246941] by Chris Fleizach
  • 5 edits in trunk/Source/WebCore

AX: Both convertToNSArray() functions in WebAccessibilityObjectWrapperBase.mm leak every NSMutableArray returned
https://bugs.webkit.org/show_bug.cgi?id=199306

Reviewed by David Kilzer.

Stop leaking every instance of convertToNSArray and return an autoreleased version.
Remove unneeded casts.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityFindMatchingObjects:]):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertToNSArray):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper childrenVectorArray]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

3:18 PM Changeset in webkit [246940] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Followup to r246931
https://bugs.webkit.org/show_bug.cgi?id=199331

Reviewed by Tim Horton.

Extend the site-specific quirk added in r246931 to *.sharepoint.com, so that it fixes Word for enterprise
customers as well.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const):

2:53 PM Changeset in webkit [246939] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Protect NetworkProcess::m_swServers from bad session IDs
https://bugs.webkit.org/show_bug.cgi?id=199298
<rdar://problem/51859081>

Reviewed by Chris Dumez.

Protect NetworkProcess from receiving bad session IDs in service worker code path by checking for session ID validity whenever interacting with the map.
One of the check is done in WebProcess in which case, if the session ID is bad, the SW connection to NetworkProcess will not be made.
For bad session IDs, this will in that case trigger timing out of service worker operations.

For get/clear data, exit early in case of bad session ID.

Made some refactoring to remove swOriginStoreForSession method.
In the one call site where it is used, the store should already be created so we reuse existingSWOriginStoreForSession.

Added a bunch of additional ASSERTs.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::actualPrepareToSuspend):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::existingSWOriginStoreForSession const):
(WebKit::NetworkProcess::registerSWServerConnection):

  • NetworkProcess/NetworkProcess.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::initializeSWClientConnection):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::initializeConnectionIfNeeded):
(WebKit::WebSWClientConnection::ensureConnectionAndSend):

2:39 PM Changeset in webkit [246938] by timothy@apple.com
  • 31 edits in trunk/Source

Rename effectiveAppearanceIsInactive and useInactiveAppearance to better match UIUserInterfaceLevel.
https://bugs.webkit.org/show_bug.cgi?id=199336
rdar://problem/52348938

Reviewed by Tim Horton.

Source/WebCore:

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

(WebCore::Document::useElevatedUserInterfaceLevel const):
(WebCore::Document::styleColorOptions const):
(WebCore::Document::useInactiveAppearance const): Deleted.

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

(WebCore::Page::effectiveAppearanceDidChange):

  • page/Page.h:

(WebCore::Page::useElevatedUserInterfaceLevel const):
(WebCore::Page::useInactiveAppearance const): Deleted.

  • platform/ios/LocalCurrentTraitCollection.h:

(WebCore::LocalCurrentTraitCollection::usingElevatedUserInterfaceLevel const):
(WebCore::LocalCurrentTraitCollection::usingBaseLevelAppearance const): Deleted.

  • platform/ios/LocalCurrentTraitCollection.mm:

(WebCore::LocalCurrentTraitCollection::LocalCurrentTraitCollection):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor const):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setUseDarkAppearanceInternal):

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _effectiveUserInterfaceLevelIsElevated]):
(-[WKWebView _effectiveAppearanceIsInactive]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::effectiveUserInterfaceLevelIsElevated):
(WebKit::WebViewImpl::effectiveAppearanceIsInactive): Deleted.

  • UIProcess/PageClient.h:

(WebKit::PageClient::effectiveUserInterfaceLevelIsElevated const):
(WebKit::PageClient::effectiveAppearanceIsInactive const): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::useElevatedUserInterfaceLevel const):
(WebKit::WebPageProxy::effectiveAppearanceDidChange):
(WebKit::WebPageProxy::useInactiveAppearance const): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::effectiveUserInterfaceLevelIsElevated const):
(WebKit::PageClientImpl::effectiveAppearanceIsInactive const): Deleted.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::effectiveUserInterfaceLevelIsElevated const):
(WebKit::PageClientImpl::effectiveAppearanceIsInactive const): Deleted.

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

(WKBundlePageSetUseDarkAppearance):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shrinkToFitContentTimer):
(WebKit::WebPage::effectiveAppearanceDidChange):

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

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _setUseDarkAppearance:]):
(-[WebView _useElevatedUserInterfaceLevel]):
(-[WebView _setUseElevatedUserInterfaceLevel:]):
(-[WebView _setUseDarkAppearance:useInactiveAppearance:]):
(-[WebView _setUseDarkAppearance:useElevatedUserInterfaceLevel:]):
(-[WebView _effectiveUserInterfaceLevelIsElevated]):
(-[WebView viewDidChangeEffectiveAppearance]):
(-[WebView _useInactiveAppearance]): Deleted.
(-[WebView _setUseInactiveAppearance:]): Deleted.
(-[WebView _effectiveAppearanceIsInactive]): Deleted.

  • WebView/WebViewPrivate.h:
2:01 PM Changeset in webkit [246937] by Alan Coon
  • 3 edits
    2 adds in tags/Safari-608.1.32.1

Cherry-pick r246835. rdar://problem/51787961

[ContentChangeObserver] Dispatch synthetic mouse event asynchronously in completePendingSyntheticClickForContentChangeObserver
https://bugs.webkit.org/show_bug.cgi?id=199220
<rdar://problem/51787961>

Reviewed by Simon Fraser.

Source/WebKit:

WebPage::completePendingSyntheticClickForContentChangeObserver should not dispatch mouse events synchronously.
Mouse events, through style updates could destroy the element that initiated this change.
WebPage::handleSyntheticClick() already implements this pattern.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):

LayoutTests:

  • fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash-expected.txt: Added.
  • fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash.html: Added.

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

2:01 PM Changeset in webkit [246936] by Alan Coon
  • 3 edits in tags/Safari-608.1.32.1/Source/WebKit

Cherry-pick r246901. rdar://problem/52202948

Regression(r246526): StorageManager thread hangs
https://bugs.webkit.org/show_bug.cgi?id=199278
<rdar://problem/52202948>

Reviewed by Geoffrey Garen.

r246526 adds a lock m_localStorageNamespacesMutex to protect m_localStorageNamespaces, because
m_localStorageNamespaces is destroyed at main thread while accesses to m_localStorageNamespaces happen in the
background thread.
After r246526, getOrCreateLocalStorageNamespace acquires lock m_localStorageNamespacesMutex when
m_localStorageNamespacesMutex is already acquired in cloneSessionStorageNamespace, so the StorageManager thread
hangs.
To solve this issue, we can remove the lock in getOrCreateLocalStorageNamespace, or we can remove the
m_localStorageNamespacesMutex. waitUntilWritesFinished() before ~StorageManager() already guarantees nothing
will be running in the background thread, so it is unlikely we the access to m_localStorageNamespaces in the
background thread would collide with the destruction of m_localStorageNamespaces. Also, we don't need
didDestroyStorageArea as LocalStorageNamespace can hold the last reference of StorageArea after r245881.

  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::StorageArea::~StorageArea): (WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace): (WebKit::StorageManager::cloneSessionStorageNamespace): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): (WebKit::StorageManager::getOrCreateLocalStorageNamespace): (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): Deleted.
  • NetworkProcess/WebStorage/StorageManager.h:

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

2:01 PM Changeset in webkit [246935] by Alan Coon
  • 2 edits in tags/Safari-608.1.32.1/Source/WebKit

Cherry-pick r246859. rdar://problem/51554509

[iPadOS] Fix another crash in -[UIPreviewTarget initWithContainer:center:transform:] when generating a fallback targeted preview
https://bugs.webkit.org/show_bug.cgi?id=199243
<rdar://problem/51554509>

Reviewed by Tim Horton.

Additionally make createFallbackTargetedPreview robust in the case where the content view is unparented, and
rename _ensureTargetedPreview to _createTargetedPreviewIfPossible, to reflect the fact that it may now return
nil.

  • UIProcess/ios/WKContentViewInteraction.mm: (createTargetedPreview): (createFallbackTargetedPreview): (-[WKContentView _createTargetedPreviewIfPossible]): (-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]): (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): (-[WKContentView _ensureTargetedPreview]): Deleted.

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

1:23 PM Changeset in webkit [246934] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

REGRESSION (r239984): pages with custom scrollbars also show normal scrollbars
https://bugs.webkit.org/show_bug.cgi?id=199321
<rdar://problem/52308095>

Reviewed by Timothy Hatcher.

Revert the part of r239984 that made isCustomScrollbar() virtual, since theme().registerScrollbar()
calls it from the base class constructor.

I wasn't able to make a test that tests rendering of overlay scrollbars (webkit.org/b/199323).

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::Scrollbar):

  • platform/Scrollbar.h:

(WebCore::Scrollbar::isCustomScrollbar const):

  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::RenderScrollbar):

  • rendering/RenderScrollbar.h:
1:15 PM Changeset in webkit [246933] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed maccatalyst build fix; add ENABLE(FULLSCREEN) checks around calls to fullScreenManager().

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _closeAllMediaPresentations]):

1:14 PM Changeset in webkit [246932] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit

macCatalyst: Selected range sometimes wrong after autocorrection
https://bugs.webkit.org/show_bug.cgi?id=199299
<rdar://problem/49717224>

Reviewed by Wenson Hsieh.

  • UIProcess/Cocoa/TextCheckingController.h:
  • UIProcess/Cocoa/TextCheckingController.mm:

(WebKit::TextCheckingController::replaceRelativeToSelection):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView replaceSelectionOffset:length:withAnnotatedString:relativeReplacementRange:]):
Plumb the whole relative replacement range through to the Web Content process.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h:
  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in:
  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection):
Only replace the text of the substring that changed (the replacement range),
and fix up the selection offset math (it was really just wrong before).

1:12 PM Changeset in webkit [246931] by Wenson Hsieh
  • 11 edits in trunk/Source

Need a way for SPI clients to know when to avoid resizing to accommodate for the input view bounds
https://bugs.webkit.org/show_bug.cgi?id=199331
<rdar://problem/52116170>

Reviewed by Tim Horton.

Source/WebCore:

Add a new quirk to avoid resizing the web view when input view bounds change.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const):

  • page/Quirks.h:

Source/WebKit:

Expose new SPI, such that clients may check whether to avoid resizing the web view when changing input view
bounds. In particular, resizing the web view in this case causes toolbar menus in Microsoft Word online to
dismiss immediately after opening them, due to resize events fired as a result of the input view dismissing.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Add a new flag to FocusedElementInformation to indicate whether we should avoid resizing the web view when an
input view is presented.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _elementDidBlur]):

Reset the value of the flag.

(-[WKContentView _shouldAvoidResizingWhenInputViewBoundsChange]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

1:00 PM Changeset in webkit [246930] by Alan Coon
  • 7 edits in tags/Safari-608.1.32.1/Source

Versioning.

11:20 AM Changeset in webkit [246929] by Alan Coon
  • 1 copy in tags/Safari-608.1.32.1

New tag.

10:39 AM Changeset in webkit [246928] by jer.noble@apple.com
  • 10 edits
    1 add in trunk

Add new -[WKWebView _closeAllMediaPresentations] SPI
https://bugs.webkit.org/show_bug.cgi?id=199294
<rdar://problem/51965958>

Reviewed by Alex Christensen.

Source/WebKit:

Add a new SPI that will close all out-of-window media presentations, including
picture-in-picture, video fullscreen, and element fullscreen.

Drive-by fixes:

+ -[WKApplicationStateTrackingView didMoveToWindow] incorrectly assumes that a WKWebView will

never be moved frome one window to another, and asserts.

+ -[WKFullScreenWindowController close] doesn't fire the correct 'webkitfullscreenchange' event

when called in the middle of animating into fullscreen.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _closeAllMediaPresentations]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::forEachSession):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView didMoveToWindow]):

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController exitFullScreenImmediately]):
(-[WKFullScreenWindowController close]):

Tools:

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

(TEST):

10:35 AM Changeset in webkit [246927] by sihui_liu@apple.com
  • 3 edits
    1 add in trunk/Tools

Add a regression test for change r246901
https://bugs.webkit.org/show_bug.cgi?id=199290

Reviewed by Geoffrey Garen.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(-[LocalStorageNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/localstorage-open-window-private.html: Added.
10:12 AM Changeset in webkit [246926] by Antti Koivisto
  • 5 edits in trunk/Source/WebKit

[iOS Scrolling] Propagate scrolls to non-nested UIScrollViews
https://bugs.webkit.org/show_bug.cgi?id=199222

Reviewed by Simon Fraser.

We may generate scrolling hierarchies where the scrolling ancestor of a layer is not
an ancestor in the layer tree. We handle this in most situations but there is still
a problem where a scroller fails to propage scroll to the ancestor when it reaches
the edge.

This patch hooks up a new SPI that allows us to tell UIKit about non-ancestor scrolling
relations and solve this problem.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::findActingScrollParent):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate _actingParentScrollViewForScrollView:]):

Hook into UIKit SPI.

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::findActingScrollParent):

9:00 AM Changeset in webkit [246925] by Konstantin Tokarev
  • 28 edits
    1 delete in trunk

Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733
https://bugs.webkit.org/show_bug.cgi?id=199317

Reviewed by Michael Catanzaro.

While IconDatabase and all code using it was removed,
ENABLE_ICONDATABASE still exists as build option and C++ macro.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

PerformanceTests:

  • StitchMarker/wtf/FeatureDefines.h:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • Resources/urlIcon.png: Removed file which was only used in

IconDatabase.cpp.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • PlatformGTK.cmake: Remove reference to unused urlIcon.png file.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebView.mm:

(-[WebView _cacheFrameLoadDelegateImplementations]): Use PLATFORM(MAC)
guard instead of ENABLE_ICONDATABASE, because ENABLE_ICONDATABASE was
enabled for macOS only.

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • gtk/manifest.txt.in: Remove reference to unused urlIcon.png file.
  • wpe/manifest.txt.in: Remove reference to unused urlIcon.png file.
7:48 AM Changeset in webkit [246924] by Wenson Hsieh
  • 9 edits in trunk

-[WKContentView _selectionClipRects] returns a bogus value in -reloadInputViews when focusing an element
https://bugs.webkit.org/show_bug.cgi?id=199310
<rdar://problem/52292137>

Reviewed by Megan Gardner.

Source/WebKit:

When reloading input views under -_elementDidFocus:, -_selectionClipRect returns the value of the previously
focused element; this is because _selectionClipRect depends on EditorState's post layout data, which is only
guaranteed to arrive during the next remote layer tree commit after the element is focused.

However, some clients need to inspect this value under the call to -reloadInputViews when an element is focused;
to make this work, simply check whether we are currently waiting for post-layout EditorState data to arrive
following element focus; if so, return the FocusedElementInformation's elementRect, which represents the initial
state of the focused element. Otherwise, use the EditorState's post layout data, which is guaranteed to be more
up-to-date than the FocusedElementInformation's element rect.

Test: KeyboardInputTests.SelectionClipRectsWhenPresentingInputView

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::waitingForPostLayoutEditorStateUpdateAfterFocusingElement const):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionClipRect]):

Tools:

Add a new API test to verify that _selectionClipRects returns the correct value when invoked under the scope of
_elementDidFocus.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/TestInputDelegate.h:
  • TestWebKitAPI/Tests/ios/TestInputDelegate.mm:

(-[TestInputDelegate setDidStartInputSessionHandler:]):
(-[TestInputDelegate didStartInputSessionHandler]):

Add plumbing for a handler block in TestInputDelegate.

(-[TestInputDelegate setWillStartInputSessionHandler:]):

Drive-by style fixes to add a space between id and < for Objective-C protocols.

(-[TestInputDelegate willStartInputSessionHandler]):
(-[TestInputDelegate _webView:willStartInputSession:]):
(-[TestInputDelegate _webView:didStartInputSession:]):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/ios/UIKitSPI.h:

Add a declaration for _selectionClipRects.

12:46 AM Changeset in webkit [246923] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] WebSockets: runtime critical warning when closing the connection in some cases
https://bugs.webkit.org/show_bug.cgi?id=199265

Reviewed by Michael Catanzaro.

Ensure the connection is still open before calling soup_websocket_connection_close().

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::close):

12:38 AM Changeset in webkit [246922] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win] unresolved external symbol "JSC::JSObject::didBecomePrototype(void)" referenced in function "JSC::Structure::create(...)"
https://bugs.webkit.org/show_bug.cgi?id=199312

Reviewed by Keith Miller.

WinCairo port, clang-cl Release builds reported a following linkage error:

WebCore.lib(UnifiedSource-4babe430-10.cpp.obj) : error LNK2019: unresolved external symbol "public: void cdecl JSC::JSObject::didBecomePrototype(void)" (?didBecomePrototype@JSObject@JSC@@QEAAXXZ) referenced in function "public: static class JSC::Structure * cdecl JSC::Structure::create(class JSC::VM &,class JSC::JSGlobalObject *,class JSC::JSValue,class JSC::TypeInfo const &,struct JSC::ClassInfo const *,unsigned char,unsigned int)" (?create@Structure@JSC@@SAPEAV12@AEAVVM@2@PEAVJSGlobalObject@2@VJSValue@2@AEBVTypeInfo@2@PEBUClassInfo@2@EI@Z)

No new tests because there is no behavior change.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: Include <JavaScriptCore/JSCInlines.h>,

and do not include headers which is included by it.

Jun 27, 2019:

10:57 PM Changeset in webkit [246921] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed WPE build fix.

  • SourcesWPE.txt: Add WebSocketTaskSoup.cpp to the build.
8:22 PM Changeset in webkit [246920] by Alan Bujtas
  • 4 edits in trunk

REGRESSION(r244633): e-mail with "height: 100%" causes unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=199303
<rdar://problem/51340927>

Reviewed by Tim Horton.

Source/WebCore:

This patch restores the previous behavior (pre r244633) where we intentionally reported stale content size value to
avoid unstable layout for content like height: 100px.

  • page/FrameView.cpp:

(WebCore::FrameView::autoSizeIfEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:

(TEST):

8:08 PM Changeset in webkit [246919] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Stop using soft linking for Media Foundation
https://bugs.webkit.org/show_bug.cgi?id=198783
<rdar://problem/52301843>

Unreviewed compilation warning fix. clang-cl reports:

..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(526,10): warning: address of function 'MFCreateTopology' will always evaluate to 'true' [-Wpointer-bool-conversion]

if (!MFCreateTopology)

~~

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource): Removed the pointer check of MFCreateTopology.

7:29 PM WebKitGTK/2.24.x edited by jdiggs@igalia.com
(diff)
7:10 PM Changeset in webkit [246918] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Stop using soft linking for Media Foundation
https://bugs.webkit.org/show_bug.cgi?id=198783

Reviewed by Alex Christensen.

WinCairo is supporting Windows 7 or newer. It doesn't need soft
linking anymore.

No new tests because there is no behavior change.

  • PlatformWinCairo.cmake: Added libraries to WebCore_LIBRARIES.
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaFoundation::setRate):
(WebCore::MediaPlayerPrivateMediaFoundation::setAllChannelVolumes):
(WebCore::MediaPlayerPrivateMediaFoundation::createSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endSession):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
(WebCore::MediaPlayerPrivateMediaFoundation::updateReadyState):
(WebCore::MediaPlayerPrivateMediaFoundation::videoDisplay):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setFrameRate):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::initializeD3D):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DSample):

6:49 PM Changeset in webkit [246917] by Basuke Suzuki
  • 4 edits in trunk/Source/WebCore

Fix build error on WebCore when disabling ENABLE_INDEXED_DATABASE.

https://bugs.webkit.org/show_bug.cgi?id=199286

Unreviewed build fix.

  • testing/Internals.cpp: Make method conditional.
  • testing/Internals.h: Ditto.
  • testing/Internals.idl: Ditto.
6:35 PM Changeset in webkit [246916] by Alan Coon
  • 1 copy in tags/Safari-608.1.31.1.2

Tag Safari-608.1.31.1.2.

6:32 PM Changeset in webkit [246915] by Alan Coon
  • 7 edits in branches/safari-608.1.31.1-branch/Source

Versioning.

6:19 PM Changeset in webkit [246914] by Alan Coon
  • 1 copy in tags/Safari-608.1.31.0.4

Tag Safari-608.1.31.0.4.

6:09 PM Changeset in webkit [246913] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Fix crash in ScrollingStateNode::insertChild()
https://bugs.webkit.org/show_bug.cgi?id=199297
rdar://problem/49415136

Reviewed by Tim Horton.

Crash data suggest that 'parent' can be deleted in ScrollingStateTree::insertNode(). To avoid this,
have ScrollingStateTree::m_stateNodeMap store RefPts, and do the same for ScrollingTree::m_nodeMap.

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode): The relaxAdoptionRequirement() is required
to avoid ASSERT(!m_adoptionIsRequired) when the node is added to the tree in its constructor.

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::unparentNode):
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):
(WebCore::ScrollingStateTree::detachAndDestroySubtree):
(WebCore::ScrollingStateTree::stateNodeForID const):

  • page/scrolling/ScrollingStateTree.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::updateTreeFromStateNode):

  • page/scrolling/ScrollingTree.h:
6:06 PM Changeset in webkit [246912] by dino@apple.com
  • 4 edits in trunk/Source/WebKit

Provide overrides for UIKit's suggested actions in UIContextMenuInteraction
https://bugs.webkit.org/show_bug.cgi?id=199301
<rdar://problem/52297380>

Reviewed by Tim Horton.

We were previously wrapping the actionMenuProvider with our own block
in order to ensure the correct suggestedActions were passed to the provider.
UIKit added API for us to override the actions separately.

Unfortunately we can't quite yet get rid of our access into the
UIContextMenuConfiguration, because we still need to override the preview
handler in the case where the user does not want link previews.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]):
Implement the new delegate SPI to provide our own actions.

5:45 PM Changeset in webkit [246911] by Kocsen Chung
  • 1 copy in tags/Safari-607.3.7

Tag Safari-607.3.7.

5:26 PM Changeset in webkit [246910] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL keepAlive()'s patchpoint should also declare that it reads HeapRange::top().
https://bugs.webkit.org/show_bug.cgi?id=199291

Reviewed by Yusuke Suzuki and Filip Pizlo.

The sole purpose of keepAlive() is to communicate to B3 that an LValue
needs to be kept alive past the last opportunity for a GC. The only way
we can get a GC is via a function call. Hence, what keepAlive() really
needs to communicate is that the LValue needs to be kept alive past the
last function call. Function calls read and write HeapRange::top().
Currently, B3 does not shuffle writes. Hence, simply inserting the
keepAlive() after the calls that can GC is sufficient.

But to be strictly correct, keepAlive() should also declare that it reads
HeapRange::top(). This will guarantee that the keepAlive patchpoint won't
ever be moved before the function call should B3 gain the ability to shuffle
writes in the future.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::keepAlive):

4:49 PM Changeset in webkit [246909] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Fix the test added in r246868 on iOS debug simulator.

  • editing/pasteboard/paste-contents-with-side-effects.html:
4:06 PM Changeset in webkit [246908] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] Select all with existing range selection replaces range instead of selecting all text
https://bugs.webkit.org/show_bug.cgi?id=197950
<rdar://problem/50245131>

Reviewed by Wenson Hsieh.

Source/WebKit:

Following <rdar://problem/47333786>, UIKit now asks WebKit whether it can handle Command + A as
"select all" instead of just demanding that we handle it. So, WebKit needs to be able to correctly
tell UIKit in advance whether it can handle it. Currenlty WebKit tells UIKit it cannot handle a
"select all" whenever there is an existing range selection. So, UIKit does not tell WebKit to
perform the "select all". Moreover, since UIKit has no other means to handle this key command
itself it tells WebKit the key command was not handled. So, WebKit tells the keyboard to insert
the "a". Instead, WebKit should tell UIKit it can handle a "select all" even when this is an
existing range selection. However we need to keep the current logic just for when UIKit is
asking us with respect to populating the callout menu to not regress platform behavior.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]): Do what we do now if we are called
when populating the callout menu and action is Select All. Otherwise, return YES for the Select All
action if we have a non-empty selection.

LayoutTests:

Add a test to ensure that pressing Command + A performs a "select all" even when there
is an existing range selection.

  • fast/events/ios/select-all-with-existing-selection-expected.txt: Added.
  • fast/events/ios/select-all-with-existing-selection.html: Added.
3:03 PM Changeset in webkit [246907] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Stop using cached UITargetedPreviews from previous interactions when starting a new context menu interaction
https://bugs.webkit.org/show_bug.cgi?id=199285
<rdar://problem/52074916>

Reviewed by Tim Horton.

WKContentView was caching the UITargetedPreview created in
-contextMenuInteraction:previewForHighlightingMenuWithConfiguration: for later reuse by
-contextMenuInteraction:previewForDismissingMenuWithConfiguration:. The cached value was
then cleared in -contextMenuInteractionDidEnd:.

This was wrong, because -contextMenuInteractionDidEnd: can be called before
-contextMenuInteraction:previewForDismissingMenuWithConfiguration:, so we would clear the
cache then create and cache a new UITargetedPreview during dismissal. Then when a new
context menu interaction started, we'd reuse the targeted preview created for the previous
dismissal (which has the wrong geometry).

Stop assuming an ordering between
-contextMenuInteraction:previewForDismissingMenuWithConfiguration: and
-contextMenuInteractionDidEnd:. Instead, always create and cache a new UITargetedPreview in
-contextMenuInteraction:previewForHighlightingMenuWithConfiguration:, then reuse it and
clear the cache in -contextMenuInteraction:previewForDismissingMenuWithConfiguration:.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createTargetedPreviewIfPossible]):
(-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]):
(-[WKContentView contextMenuInteractionDidEnd:]):

2:36 PM Changeset in webkit [246906] by Konstantin Tokarev
  • 2 edits in trunk/Source/WTF

Avoid using WTF::Function for passing local function pointers and closures in URLHelpers.cpp
https://bugs.webkit.org/show_bug.cgi?id=199271

Reviewed by Yusuke Suzuki.

WTF::Function allocates memory on heap, which is totally redundant in this
case.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):

2:11 PM Changeset in webkit [246905] by timothy@apple.com
  • 4 edits in trunk/Source

Move WebKitLegacy off of a couple AppKit ivars.
https://bugs.webkit.org/show_bug.cgi?id=199279
rdar://problem/34983438

Reviewed by Tim Horton.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[NSView _setSubviewsIvar:]): Added. Implement on older systems.
(-[NSView _subviewsIvar]): Added. Ditto.
(needsCursorRectsSupportAtPoint): Use _borderView property.
(-[WebHTMLView _setAsideSubviews]): Use _subviewsIvar property.
(-[NSWindow _web_borderView]): Deleted.

Source/WTF:

  • wtf/Platform.h: Added HAVE_SUBVIEWS_IVAR_SPI.
1:57 PM Changeset in webkit [246904] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Layout Test fast/parser/parser-yield-timing.html was flaky due to strict tolerance, increased tolerance.
https://bugs.webkit.org/show_bug.cgi?id=199280

Patch by Russell Epstein <russell_e@apple.com> on 2019-06-27
Reviewed by Tim Horton.

  • fast/parser/parser-yield-timing-expected.txt:
  • fast/parser/parser-yield-timing.html:
  • platform/mac-wk1/TestExpectations:
1:54 PM Changeset in webkit [246903] by Alan Coon
  • 3 edits in branches/safari-608.1.31.0-branch/Source/WebKit

Cherry-pick r246901. rdar://problem/52202948

Regression(r246526): StorageManager thread hangs
https://bugs.webkit.org/show_bug.cgi?id=199278
<rdar://problem/52202948>

Reviewed by Geoffrey Garen.

r246526 adds a lock m_localStorageNamespacesMutex to protect m_localStorageNamespaces, because
m_localStorageNamespaces is destroyed at main thread while accesses to m_localStorageNamespaces happen in the
background thread.
After r246526, getOrCreateLocalStorageNamespace acquires lock m_localStorageNamespacesMutex when
m_localStorageNamespacesMutex is already acquired in cloneSessionStorageNamespace, so the StorageManager thread
hangs.
To solve this issue, we can remove the lock in getOrCreateLocalStorageNamespace, or we can remove the
m_localStorageNamespacesMutex. waitUntilWritesFinished() before ~StorageManager() already guarantees nothing
will be running in the background thread, so it is unlikely we the access to m_localStorageNamespaces in the
background thread would collide with the destruction of m_localStorageNamespaces. Also, we don't need
didDestroyStorageArea as LocalStorageNamespace can hold the last reference of StorageArea after r245881.

  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::StorageArea::~StorageArea): (WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace): (WebKit::StorageManager::cloneSessionStorageNamespace): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): (WebKit::StorageManager::getOrCreateLocalStorageNamespace): (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): Deleted.
  • NetworkProcess/WebStorage/StorageManager.h:

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

1:54 PM Changeset in webkit [246902] by Alan Coon
  • 3 edits in branches/safari-608.1.31.1-branch/Source/WebKit

Cherry-pick r246901. rdar://problem/52202948

Regression(r246526): StorageManager thread hangs
https://bugs.webkit.org/show_bug.cgi?id=199278
<rdar://problem/52202948>

Reviewed by Geoffrey Garen.

r246526 adds a lock m_localStorageNamespacesMutex to protect m_localStorageNamespaces, because
m_localStorageNamespaces is destroyed at main thread while accesses to m_localStorageNamespaces happen in the
background thread.
After r246526, getOrCreateLocalStorageNamespace acquires lock m_localStorageNamespacesMutex when
m_localStorageNamespacesMutex is already acquired in cloneSessionStorageNamespace, so the StorageManager thread
hangs.
To solve this issue, we can remove the lock in getOrCreateLocalStorageNamespace, or we can remove the
m_localStorageNamespacesMutex. waitUntilWritesFinished() before ~StorageManager() already guarantees nothing
will be running in the background thread, so it is unlikely we the access to m_localStorageNamespaces in the
background thread would collide with the destruction of m_localStorageNamespaces. Also, we don't need
didDestroyStorageArea as LocalStorageNamespace can hold the last reference of StorageArea after r245881.

  • NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::StorageArea::~StorageArea): (WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace): (WebKit::StorageManager::cloneSessionStorageNamespace): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): (WebKit::StorageManager::getOrCreateLocalStorageNamespace): (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): Deleted.
  • NetworkProcess/WebStorage/StorageManager.h:

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

1:46 PM Changeset in webkit [246901] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Regression(r246526): StorageManager thread hangs
https://bugs.webkit.org/show_bug.cgi?id=199278
<rdar://problem/52202948>

Reviewed by Geoffrey Garen.

r246526 adds a lock m_localStorageNamespacesMutex to protect m_localStorageNamespaces, because
m_localStorageNamespaces is destroyed at main thread while accesses to m_localStorageNamespaces happen in the
background thread.
After r246526, getOrCreateLocalStorageNamespace acquires lock m_localStorageNamespacesMutex when
m_localStorageNamespacesMutex is already acquired in cloneSessionStorageNamespace, so the StorageManager thread
hangs.
To solve this issue, we can remove the lock in getOrCreateLocalStorageNamespace, or we can remove the
m_localStorageNamespacesMutex. waitUntilWritesFinished() before ~StorageManager() already guarantees nothing
will be running in the background thread, so it is unlikely we the access to m_localStorageNamespaces in the
background thread would collide with the destruction of m_localStorageNamespaces. Also, we don't need
didDestroyStorageArea as LocalStorageNamespace can hold the last reference of StorageArea after r245881.

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::~StorageArea):
(WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): Deleted.

  • NetworkProcess/WebStorage/StorageManager.h:
1:44 PM Changeset in webkit [246900] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r246888): fast/dom/navigator-detached-no-crash.html failing on Apple High Sierra Release WK2 (Tests)
https://bugs.webkit.org/show_bug.cgi?id=199284

Unreviewed test gardening.

  • platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt: Rebaseline test after r246888.
1:22 PM Changeset in webkit [246899] by Simon Fraser
  • 2 edits in trunk/Source/WebCore
REGRESSION (r246869): ASSERTION FAILED: !renderer().hasRepaintLayoutRects()
renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint())

https://bugs.webkit.org/show_bug.cgi?id=199274

Reviewed by Zalan Bujtas.

When layer backing sharing changes, we need to clear cached repaint rects, since they
painting root changes.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setBackingProviderLayer):

1:00 PM Changeset in webkit [246898] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Layout Test fast/parser/parser-yield-timing.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=199280

Unreviewed test gardening.

Patch by Russell Epstein <russell_e@apple.com> on 2019-06-27

  • platform/mac-wk1/TestExpectations:
12:43 PM Changeset in webkit [246897] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

pointerevents/ios/pointer-events-implicit-capture.html fails on iOS
https://bugs.webkit.org/show_bug.cgi?id=199259

Patch by Antoine Quint <Antoine Quint> on 2019-06-27
Reviewed by Dean Jackson.

The assumptions made by this test were incorrect. The "gotpointercapture" event should not be dispatched
until the next pointer event is dispatched after setting pointer capture. Even though pointer capture is
set implicitly on "pointerdown" on non-mouse devices, the event will only be fired once a "pointermove" or
"pointerup" event is dispatched.

  • pointerevents/ios/pointer-events-implicit-capture.html:
11:43 AM Changeset in webkit [246896] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

WebSockets: avoid data copies when queuing tasks in WebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=199262

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-06-27
Reviewed by Alex Christensen.

For IPC message handler arguments we can receive rvalue references instead of const references.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::didConnect):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didReceiveMessageError):

  • WebProcess/Network/WebSocketChannel.h:
11:36 AM Changeset in webkit [246895] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

Fix build after revision 246877
https://bugs.webkit.org/show_bug.cgi?id=199276

Unreviewed.

Pass protocol parameter to NetworkSocketChannel.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]):

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

(WebKit::WebSocketTask::didConnect):

11:27 AM Changeset in webkit [246894] by Devin Rousso
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed, fix test failures after r246876.

  • inspector/worker/console-basic-expected.txt:
11:23 AM Changeset in webkit [246893] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline test after r246876.

  • inspector/worker/console-basic-expected.txt:
11:17 AM Changeset in webkit [246892] by Beth Dakin
  • 106 edits
    2 moves in trunk

Upstream use of MACCATALYST
https://bugs.webkit.org/show_bug.cgi?id=199245
rdar://problem/51687723

Reviewed by Tim Horton.

PerformanceTests:

  • MediaTime/Configurations/SDKVariant.xcconfig:

Source/bmalloc:

  • Configurations/SDKVariant.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/SDKVariant.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Modules/geolocation/ios/GeolocationPositionIOS.mm:

(WebCore::GeolocationPosition::GeolocationPosition):

  • editing/cocoa/DictionaryLookup.mm:

(-[WebRevealHighlight drawHighlightContentForItem:context:]):
(WebCore::showPopupOrCreateAnimationController):

  • editing/cocoa/WebContentReaderCocoa.mm:
  • page/Navigator.h:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::defaultContentChangeObserverEnabled):

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory):

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::routingContextUID const):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::canHandleResponse):

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::isAvailable const):

  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:

(WebCore::AVStreamDataParserMIMETypeCache::isAvailable const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::cvPixelFormatOpenGLKey):
(WebCore::ImageTransferSessionVT::ImageTransferSessionVT):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readPasteboardWebContentDataForType):
(WebCore::Pasteboard::supportedWebContentPasteboardTypes):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::registerItemToPasteboard):
(WebCore::PlatformPasteboard::write):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer setVideoGravity:]):

  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderRegistrationInfoList itemProvider]):
(-[WebItemProviderLoadResult canBeRepresentedAsFileUpload]):
(-[WebItemProviderPasteboard numberOfFiles]):

  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::summaryInfo const):

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/SDKVariant.xcconfig:
  • pal/spi/mac/AVFoundationSPI.h:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/SDKVariant.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Network-iOSMac.entitlements: Removed.
  • Configurations/Network-macCatalyst.entitlements: Copied from Source/WebKit/Configurations/Network-iOSMac.entitlements.
  • Configurations/NetworkService.xcconfig:
  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebContent-iOSMac.entitlements: Removed.
  • Configurations/WebContent-macCatalyst.entitlements: Copied from Source/WebKit/Configurations/WebContent-iOSMac.entitlements.
  • Configurations/WebContentService.xcconfig:
  • Configurations/WebKit.xcconfig:
  • NetworkProcess/ios/NetworkProcessIOS.mm:
  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeProcess):
(WebKit::NetworkProcess::initializeProcessName):

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForExternalHostingProcess):

  • Platform/spi/ios/ManagedConfigurationSPI.h:
  • Platform/spi/ios/UIKitSPI.h:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCustomPasteboardDataEnabled):

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::initializeSandbox):

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::enableSandboxStyleFileQuarantine):

  • Shared/mac/CodeSigning.mm:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _webViewPrintFormatter]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKRemoteView initWithFrame:contextID:]):

  • UIProcess/_WKWebViewPrintFormatter.mm:
  • UIProcess/_WKWebViewPrintFormatterInternal.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _elementActionForDDAction:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView _showTapHighlight]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _defineForWebView:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView closestPositionToPoint:]):
(-[WKContentView _showShareSheet:inRect:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingSupported):
(WebKit::desktopClassBrowsingRecommended):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showDocumentPickerMenu]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::selectWithGesture):
(WebKit::selectionPositionInformation):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WebKitLegacy/ios:

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider requestGeolocationAuthorization]):

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/SDKVariant.xcconfig:

Source/WTF:

  • Configurations/SDKVariant.xcconfig:
  • wtf/FeatureDefines.h:
  • wtf/Platform.h:

Tools:

  • ContentExtensionTester/Configurations/SDKVariant.xcconfig:
  • DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
  • ImageDiff/cg/Configurations/SDKVariant.xcconfig:
  • MiniBrowser/Configurations/SDKVariant.xcconfig:
  • MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(JavaScriptCoreGenerator):
(WebCoreGenerator):
(WebKitGenerator):

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/Configurations/SDKVariant.xcconfig:
  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
  • WebEditingTester/Configurations/SDKVariant.xcconfig:
  • WebKitLauncher/Configurations/SDKVariant.xcconfig:
  • WebKitTestRunner/Configurations/SDKVariant.xcconfig:
  • lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:
11:12 AM Changeset in webkit [246891] by sbarati@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed. Skip WebGPU tests on High Sierra since WebGPU is disabled.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
11:11 AM Changeset in webkit [246890] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Correct document lifecycle while processing commands
https://bugs.webkit.org/show_bug.cgi?id=199146
<rdar://problem/52047462>

Reviewed by Darin Adler.

Protect the document while commands are being processed since script may run
during the style resolution. We should protect against this.

  • dom/Document.cpp:

(WebCore::command):

10:59 AM Changeset in webkit [246889] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add status for Web Bluetooth Scanning standards specification.
https://bugs.webkit.org/show_bug.cgi?id=199235

Reviewed by Joseph Pecoraro.

  • features.json:
10:47 AM Changeset in webkit [246888] by sbarati@apple.com
  • 12 edits in trunk

Make WEBGPU enabled only on Mojave and later.

Rubber-stamped by Myles C. Maxfield.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

We're going to look into re-enabling it on High Sierra in:
https://bugs.webkit.org/show_bug.cgi?id=199275

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
10:42 AM Changeset in webkit [246887] by Alan Coon
  • 2 edits in branches/safari-608.1.31.0-branch/Source/WebKit

Cherry-pick r246859. rdar://problem/51554509

[iPadOS] Fix another crash in -[UIPreviewTarget initWithContainer:center:transform:] when generating a fallback targeted preview
https://bugs.webkit.org/show_bug.cgi?id=199243
<rdar://problem/51554509>

Reviewed by Tim Horton.

Additionally make createFallbackTargetedPreview robust in the case where the content view is unparented, and
rename _ensureTargetedPreview to _createTargetedPreviewIfPossible, to reflect the fact that it may now return
nil.

  • UIProcess/ios/WKContentViewInteraction.mm: (createTargetedPreview): (createFallbackTargetedPreview): (-[WKContentView _createTargetedPreviewIfPossible]): (-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]): (-[WKContentView contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): (-[WKContentView _ensureTargetedPreview]): Deleted.

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

10:42 AM Changeset in webkit [246886] by Alan Coon
  • 7 edits in branches/safari-608.1.31.0-branch

Revert r246853. rdar://problem/51554509

Re-integrates the content introduced when cherry-picking r246800 as r246834.

10:14 AM Changeset in webkit [246885] by Alan Coon
  • 7 edits in branches/safari-608.1.31.0-branch/Source

Versioning.

9:54 AM Changeset in webkit [246884] by don.olmstead@sony.com
  • 4 edits
    3 adds in trunk

[FTW] Build JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=199254

Reviewed by Brent Fulgham.

.:

Add the FTW [For the Win(dows)] port. FTW is OS(WINDOWS) + USE(DIRECT2D) +
USE(CURL). Its eventual goal is to be the one true Windows port but to avoid
breaking AppleWin and WinCairo its being split into its own port for the interim.

  • CMakeLists.txt:
  • Source/cmake/OptionsFTW.cmake: Added.

Source/JavaScriptCore:

  • PlatformFTW.cmake: Added.

Source/WTF:

  • wtf/PlatformFTW.cmake: Added.
9:35 AM Changeset in webkit [246883] by Kocsen Chung
  • 5 edits
    1 add in branches/safari-607-branch

Cherry-pick r246740. rdar://problem/52054323

ArraySlice needs to keep the source array alive.
https://bugs.webkit.org/show_bug.cgi?id=197374
<rdar://problem/50304429>

Reviewed by Michael Saboff and Filip Pizlo.

JSTests:

  • stress/array-slice-must-keep-source-array-alive.js: Added.

Source/JavaScriptCore:

The implementation of the FTL ArraySlice intrinsics may GC while allocating the
result array and its butterfly. Previously, ArraySlice already keeps the source
butterfly alive in order to copy from it to the new butterfly after the allocation.
Unfortunately, this is not enough. We also need to keep the source array alive
so that GC will scan the values in the butterfly as well. Note: the butterfly
does not have a visitChildren() method to do this scan. It's the parent object's
responsibility to do the scanning.

This patch fixes this by introducing a keepAlive() utility method, and we use it
to keep the source array alive while allocating the result array and butterfly.

keepAlive() works by using a patchpoint to communicate to B3 that a value (the
source array in this case) is still in use. It also uses a fence to keep B3 from
relocating the patchpoint, which may defeat the fix.

For the DFG's SpeculativeJIT::compileArraySlice(), we may have lucked out and the
source array cell is kept alive. This patch makes it explicit that we should
keep its cell alive till after the result array has been allocated.

For the Baseline JIT and LLInt, we use the arrayProtoFuncSlice() runtime function
and there is no issue because the source array (in "thisObj") is in the element
copying loop that follows the allocation of the result array. However, for
documentation purposes, this patch adds a call to HeapCell::use() to indicate that
the source array need to kept alive at least until after the allocation of the
result array.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileArraySlice):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileArraySlice): (JSC::FTL::DFG::LowerDFGToB3::allocateJSArray): (JSC::FTL::DFG::LowerDFGToB3::keepAlive):
  • runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncSlice):

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

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

[ews-build] Do not print worker environment variables in each build step
https://bugs.webkit.org/show_bug.cgi?id=197319

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckOutSource.init): Disabled logging of environment variables.
(ApplyPatch.init): Ditto.
(KillOldProcesses.init): Ditto.
(ArchiveBuiltProduct.init): Ditto.
(DownloadBuiltProduct.init): Ditto.
(ExtractBuiltProduct.init): Ditto.
(RunAPITests.init): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
8:38 AM Changeset in webkit [246881] by Konstantin Tokarev
  • 4 edits in trunk/Source/JavaScriptCore

Use JSC_GLIB_API_ENABLED instead of USE(GLIB) as a compile-time check for GLib JSC API
https://bugs.webkit.org/show_bug.cgi?id=199270

Reviewed by Michael Catanzaro.

This change allows building code with enabled USE(GLIB) but without
GLib JSC API.

  • heap/Heap.cpp:

(JSC::Heap::releaseDelayedReleasedObjects):

  • heap/Heap.h:
  • heap/HeapInlines.h:
6:45 AM Changeset in webkit [246880] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Fix build non-unified builds after r246856
https://bugs.webkit.org/show_bug.cgi?id=199263

Reviewed by Michael Catanzaro.

  • UIProcess/API/C/WKMessageListener.cpp: Added missing inclusion of WKAPICast.h and usage of WebKit namespace.
6:32 AM Changeset in webkit [246879] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (touch-action): Can't scroll vertically when touching a horizontally-scrollable element on instagram.com
https://bugs.webkit.org/show_bug.cgi?id=199268
<rdar://problem/52246473>

Reviewed by Antoine Quint.

Source/WebCore:

Test: pointerevents/ios/touch-action-region-manipulation.html

Having a restrictive touch-action value like 'pan-y' on on element and then having a descendant with
'touch-action: manipulation' computes to 'none'.

  • css/StyleResolver.cpp:

(WebCore::computeEffectiveTouchActions):

For value 'manipulation' return the current effective value, similar to the reverse case above.
Set intersection should only be computed out of restrictive values (pan-x/pan-y/pinch-zoom/none).

LayoutTests:

  • pointerevents/ios/touch-action-region-manipulation-expected.txt: Added.
  • pointerevents/ios/touch-action-region-manipulation.html: Added.
1:58 AM Changeset in webkit [246878] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] WebSockets: handle TLS certificate and errors
https://bugs.webkit.org/show_bug.cgi?id=199223

Reviewed by Michael Catanzaro.

Connect to accept-certificate signal on the WebSocket message connection to decide what to do in case of TLS errors.

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::webSocketAcceptCertificateCallback):
(WebKit::webSocketMessageNetworkEventCallback):
(WebKit::NetworkSessionSoup::createWebSocketTask):

1:52 AM Changeset in webkit [246877] by Carlos Garcia Campos
  • 12 edits
    1 copy
    1 add in trunk/Source

[SOUP] Use libsoup WebSockets API
https://bugs.webkit.org/show_bug.cgi?id=199151

Reviewed by Michael Catanzaro.

Source/WebCore:

Use createWebSocketChannel() from the provider also for libsoup when WEBKIT_USE_SOUP_WEBSOCKETS env var is set.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

Source/WebKit:

Use the new WebSockets code path that depends on platform specific WebSockets implementation using the libsoup
API. This is an initial implementation manually tested using the layout tests, which most of them fail due to
missing console messages, missing features in the new code path or differences in the platform
implementation. It will be disabled by default until it's feature complete compared to the internal WebKit
implementation.

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::NetworkSocketChannel): Null check m_socket before using it, because
createWebSocketTask() can return nullptr;
(WebKit::NetworkSocketChannel::didConnect): Receive the protocol accepted by the server.
(WebKit::NetworkSocketChannel::didReceiveMessageError): Something failed in the server side.

  • NetworkProcess/NetworkSocketChannel.h:
  • NetworkProcess/WebSocketTask.h:
  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::createWebSocketTask): Create a WebSocketTask.

  • NetworkProcess/soup/NetworkSessionSoup.h:
  • NetworkProcess/soup/WebSocketTaskSoup.cpp: Added.

(WebKit::WebSocketTask::WebSocketTask):
(WebKit::WebSocketTask::~WebSocketTask):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didReceiveMessageCallback):
(WebKit::WebSocketTask::didReceiveErrorCallback):
(WebKit::WebSocketTask::didFail):
(WebKit::WebSocketTask::didCloseCallback):
(WebKit::WebSocketTask::didClose):
(WebKit::WebSocketTask::sendString):
(WebKit::WebSocketTask::sendData):
(WebKit::WebSocketTask::close):
(WebKit::WebSocketTask::cancel):
(WebKit::WebSocketTask::resume):

  • NetworkProcess/soup/WebSocketTaskSoup.h: Copied from Source/WebKit/NetworkProcess/WebSocketTask.h.
  • SourcesGTK.txt:
  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::subprotocol): Return the protocol accepted by the server.
(WebKit::WebSocketChannel::didConnect): Set the protocol accepted by the server.
(WebKit::WebSocketChannel::didReceiveMessageError): It's now an IPC message handler and receives the reason as parameter.
(WebKit::WebSocketChannel::networkProcessCrashed): Pass empty reason.

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Network/WebSocketChannel.messages.in:
1:25 AM Changeset in webkit [246876] by Devin Rousso
  • 25 edits in trunk

Web Inspector: throw an error if console.count/console.countReset is called with an object that throws an error from toString
https://bugs.webkit.org/show_bug.cgi?id=199252

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Parse the arguments passed to console.count and console.countReset before sending it to
the ConsoleClient so that an error can be thrown if the first argument doesn't toString
nicely (e.g. without throwing an error).

Generate call stacks for console.countReset to match other console methods. Also do this
for console.time, console.timeLog, and console.timeEnd. Limit the call stack to only
have the top frame, so no unnecessary/extra data is sent to the frontend (right now, only
the call location is displayed).

Rename title to label for console.time, console.timeLog, and console.timeEnd to
better match the spec.

  • runtime/ConsoleClient.h:
  • runtime/ConsoleObject.cpp:

(JSC::valueOrDefaultLabelString):
(JSC::consoleProtoFuncCount):
(JSC::consoleProtoFuncCountReset):
(JSC::consoleProtoFuncTime):
(JSC::consoleProtoFuncTimeLog):
(JSC::consoleProtoFuncTimeEnd):

  • inspector/JSGlobalObjectConsoleClient.h:
  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::count):
(Inspector::JSGlobalObjectConsoleClient::countReset):
(Inspector::JSGlobalObjectConsoleClient::time):
(Inspector::JSGlobalObjectConsoleClient::timeLog):
(Inspector::JSGlobalObjectConsoleClient::timeEnd):

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::logTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::countReset):
(Inspector::InspectorConsoleAgent::getCounterLabel): Deleted.

  • inspector/ConsoleMessage.h:
  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
Allow ConsoleMessages to be created with both ScriptArguments and a ScriptCallStack.

Source/WebCore:

Parse the arguments passed to console.count and console.countReset before sending it to
the ConsoleClient so that an error can be thrown if the first argument doesn't toString
nicely (e.g. without throwing an error).

Generate call stacks for console.countReset to match other console methods. Also do this
for console.time, console.timeLog, and console.timeEnd. Limit the call stack to only
have the top frame, so no unnecessary/extra data is sent to the frontend (right now, only
the call location is displayed).

Rename title to label for console.time, console.timeLog, and console.timeEnd to
better match the spec.

Updated existing LayoutTests:

  • inspector/console/console-count.html
  • inspector/console/console-api.html

Also covered by existing WPT tests.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::consoleCount):
(WebCore::InspectorInstrumentation::consoleCountReset):
(WebCore::InspectorInstrumentation::startConsoleTiming):
(WebCore::InspectorInstrumentation::logConsoleTiming):
(WebCore::InspectorInstrumentation::stopConsoleTiming):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::consoleCountImpl):
(WebCore::InspectorInstrumentation::consoleCountResetImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::logConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):

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

(WebCore::PageConsoleClient::count):
(WebCore::PageConsoleClient::countReset):
(WebCore::PageConsoleClient::time):
(WebCore::PageConsoleClient::timeLog):
(WebCore::PageConsoleClient::timeEnd):

  • workers/WorkerConsoleClient.h:
  • workers/WorkerConsoleClient.cpp:

(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::countReset):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeLog):
(WebCore::WorkerConsoleClient::timeEnd):

  • worklets/WorkletConsoleClient.h:
  • worklets/WorkletConsoleClient.cpp:

(WebCore::WorkletConsoleClient::count):
(WebCore::WorkletConsoleClient::countReset):

Source/WebInspectorUI:

Add entries for console.countReset and console.timeLog.

Rename title to label for console.time, console.timeLog, and console.timeEnd to
better match the spec.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

  • inspector/console/console-count.html:
  • inspector/console/console-count-expected.txt:
  • inspector/console/console-api-expected.txt:
1:19 AM Changeset in webkit [246875] by sbarati@apple.com
  • 10 edits
    8 adds in trunk

[WHLSL] Implement arrays and MakeArrayReference
https://bugs.webkit.org/show_bug.cgi?id=198414

Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch implements WHLSL arrays. The main implementation detail is that
arrays get compiled to use Metal's array type. To make everything work, this
patch also fixes a few bugs:

  • The checker now allows "operator.length" to be called on arrays. Prior to

this patch, it was just allowed on array references.

  • The preserve variable lifetimes pass now looks at MakeArrayReference nodes.

Prior to this patch, it just looked at MakePointerExpression.

  • We were producing the wrong type for ander arguments for indexed accesses

on array types. We were saying the argument that was produced was a reference
to an array instead of an array reference to the element type.

  • The trie we compose for the reverse type hierarchy was inserting elements

into the wrong "children" vector. We were always inserting things into the
top level vector. This is wrong when we have a nesting of types > 1.

I also found a bug with having arrays of pointers when writing this patch.
Work on this will take place in a follow up: https://bugs.webkit.org/show_bug.cgi?id=199197

Tests: webgpu/whlsl-huge-array.html

webgpu/whlsl-make-array-reference.html
webgpu/whlsl-simple-arrays.html
webgpu/whlsl-two-dimensional-array.html

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::writeNativeFunction):

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::insert):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::Checker::visit):

  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:

(WebCore::WHLSL::EscapedVariableCollector::escapeVariableUse):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::anderCallArgument):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

  • webgpu/whlsl-huge-array-expected.txt: Added.
  • webgpu/whlsl-huge-array.html: Added.
  • webgpu/whlsl-make-array-reference-expected.txt: Added.
  • webgpu/whlsl-make-array-reference.html: Added.
  • webgpu/whlsl-simple-arrays-expected.txt: Added.
  • webgpu/whlsl-simple-arrays.html: Added.
  • webgpu/whlsl-two-dimensional-array-expected.txt: Added.
  • webgpu/whlsl-two-dimensional-array.html: Added.
1:14 AM Changeset in webkit [246874] by Fujii Hironori
  • 10 edits in trunk

[CMake] Bump cmake_minimum_required version to 3.10
https://bugs.webkit.org/show_bug.cgi?id=199181

Reviewed by Don Olmstead.

.:

  • CMakeLists.txt:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebCore:

No new tests because there is no behavior change.

  • CMakeLists.txt:

Source/WebKitLegacy:

  • CMakeLists.txt:

Source/WTF:

  • CMakeLists.txt:
12:11 AM Changeset in webkit [246873] by Konstantin Tokarev
  • 6 edits in trunk

[cmake] Switch to built-in handling of C++ standard instead of hardcoding -std=c++17
https://bugs.webkit.org/show_bug.cgi?id=199108

Reviewed by Don Olmstead.

Rationale:

  1. It provides an abstraction over exact flags of particular compilers - we just specify required version of C++ standard
  2. External libraries (like Qt used in WPEQt) may require particular C++ standard or even particular C++ features to be availabe (e.g. Qt requires INTERFACE_COMPILE_FEATURES cxx_decltype, which causes cmake to add -std=gnu++11 unless proper CXX_STANDARD is defined)

.:

  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsMSVC.cmake:
  • Source/cmake/WebKitCompilerFlags.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Use project-level default for CXX_STANDARD

property.

Note: See TracTimeline for information about the timeline view.