Timeline



Apr 17, 2020:

8:04 PM Changeset in webkit [260306] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

[iOS WK1] -[_WebSafeForwarder asyncForwarder] uses non-static dispatch_once_t predicate
<https://webkit.org/b/210625>

Reviewed by Daniel Bates.

Remove use of dispatch_once to initialize
_WebSafeForwarder._asyncForwarder, and modernize both
_WebSafeForwarder and _WebSafeAsyncForwarder classes.

  • WebView/WebView.mm:

(@interface _WebSafeAsyncForwarder):

  • Make _forwarder weak. It can't be strong or a retain cycle would be created between this object and _WebSafeForwarder.
  • Change return type from id to instancetype for -[_WebSafeAsyncForwarder initWithForwarder:].

(@interface _WebSafeForwarder):

  • Make _target weak and rename from target.
  • Make _defaultTarget weak and rename from defaultTarget.
  • Rename _asyncForwarder from asyncForwarder.
  • Delete unused asyncForwarderPred.
  • Replace -asyncForwarder method declaration with a @property definition.

(-[_WebSafeForwarder initWithTarget:defaultTarget:]):

  • Update for instance variable renames.
  • Iniitalize _asyncForwarder here. There are (at most) eight _WebSafeForwarder objects created per WebView, so creating this object in the constructor seems reasonable.

(-[_WebSafeForwarder asyncForwarder:]):

  • Delete this method (and use of dispatch_once, fixing the bug). Replace with @synthesize statement.

(-[_WebSafeForwarder dealloc:]):

  • Update for instance variable renames, and assign nil to all instance variables.

(-[_WebSafeForwarder forwardInvocation:]):
(-[_WebSafeForwarder respondsToSelector:]):
(-[_WebSafeForwarder methodSignatureForSelector:]):

  • Update for instance variable renames.

(-[_WebSafeForwarder initWithForwarder:]):

  • Change return type from id to instancetype.
6:37 PM Changeset in webkit [260305] by Simon Fraser
  • 45 edits in trunk

Group overflow controls layers into a single container layer
https://bugs.webkit.org/show_bug.cgi?id=210675

Reviewed by Zalan Bujtas.

Source/WebCore:

Overflow control layers are going to change z-order in a future change. To make this
easier, group the overflow controls layer into their own container layer.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateDebugIndicators):
(WebCore::RenderLayerBacking::updateGeometry): Size the overflow controls layer using paddingBoxRectIncludingScrollbar().
(WebCore::RenderLayerBacking::updateInternalHierarchy): New parenting.
(WebCore::RenderLayerBacking::updateOverflowControlsLayers): Some refactoring with a nice lambda.
(WebCore::RenderLayerBacking::positionOverflowControlsLayers): Lovely lambda here. Nice.

  • rendering/RenderLayerBacking.h:

LayoutTests:

Rebaselines.

  • compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:
  • compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
  • compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
  • compositing/layer-creation/clipping-scope/shared-layers-in-scroller-expected.txt:
  • compositing/overflow/overflow-auto-with-touch-expected.txt:
  • compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
  • compositing/overflow/textarea-scroll-touch-expected.txt:
  • compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt:
  • compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt:
  • fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt:
  • platform/mac-wk1/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:
  • platform/mac/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-tile-coverage-expected.txt:
6:26 PM Changeset in webkit [260304] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[Cocoa] Password obscuring dots drawn with the system font are too small
https://bugs.webkit.org/show_bug.cgi?id=209692

Reviewed by Darin Adler.

Addressing post-review comments.

  • platform/mac/TestExpectations:
5:54 PM Changeset in webkit [260303] by Kate Cheney
  • 31 edits in trunk

Enable service workers for app-bound domains
https://bugs.webkit.org/show_bug.cgi?id=210451
<rdar://problem/61479474>

Reviewed by Brent Fulgham.

Source/WebCore:

SWServer now retrieves the app-bound domains from the UI Process and
only continues with the load if the proper entitlement is present
or the load is coming from an app-bound domain.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::validateRegistrationDomain):
(WebCore::SWServer::scheduleJob):

  • workers/service/server/SWServer.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::createFetchTask):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::swConnection):
(WebKit::NetworkConnectionToWebProcess::isServiceWorkerAllowed const): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:

Removed ASSERTS and service worker entitlement checks which are now done along with app-bound
domain checks in SWServer.cpp.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
Remove the check for parentProcessHasServiceWorkerEntitlement() before
adding a serviceWorkerSession. This doesn't do anything except add an
entry to a map, and simplifies the case where we need a session for
app-bound instances which should have service workers but have no entitlement.

Pass the entitlement and a new callback to request app-bound domains
from the UI Process to the SWServer. This will make sure the server
checks for the entitlement or list of app-bound domains before completing a load.

(WebKit::NetworkProcess::registerSWServerConnection):
Remove unnecessary ASSERT for entitlement.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):
(WebKit::NetworkProcess::disableServiceWorkerEntitlement):
(WebKit::NetworkProcess::clearServiceWorkerEntitlementOverride):
In order to test this thoroughly, TestWebKitAPI needed a way to
temporarily disable the service worker entitlement. This function
overrides the check for the entitlement if the bool is set, disabling
the entitlement.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

WebPage needs to know if it is app-bound when created so it can update
the service worker preferences key accordingly.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _serviceWorkerEntitlementDisabledForTesting]):
(-[WKPreferences _setServiceWorkerEntitlementDisabledForTesting:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Disable entitlement for testing.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::limitsNavigationsToAppBoundDomains const):
(API::PageConfiguration::setLimitsNavigationsToAppBoundDomains):
(API::PageConfiguration::limitsNavigationToAppBoundDomains const): Deleted.
(API::PageConfiguration::setLimitsNavigationToAppBoundDomains): Deleted.
(-[WKWebViewConfiguration limitsNavigationsToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationsToAppBoundDomains:]):
(-[WKWebViewConfiguration limitsNavigationToAppBoundDomains]): Deleted.
(-[WKWebViewConfiguration setLimitsNavigationToAppBoundDomains:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

Inconsistent naming (Navigation vs Navigations).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):
Check for entitlement or app-bound webview.

(-[WKWebView _serviceWorkersEnabled:]):
(-[WKWebView _clearServiceWorkerEntitlementOverride:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Testing SPIs.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getAppBoundDomains):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

Sends the app-bound domains to the Network Process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::m_limitsNavigationToAppBoundDomains): Deleted.
Naming inconsistency.

(WebKit::WebPageProxy::disableServiceWorkerEntitlementInNetworkProcess):
(WebKit::WebPageProxy::clearServiceWorkerEntitlementOverride):

  • UIProcess/WebPageProxy.h:

Disable entitlement for testing.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_isNavigatingToAppBoundDomain):
Set this parameter in the constructor so it will be accurate when
updating preferences.

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::clearServiceWorkerEntitlementOverride):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):
(WebKit::WebPage::disableServiceWorkerEntitlement):
(WebKit::WebPage::clearServiceWorkerEntitlementOverride):
Disable entitlement for testing.

Tools:

Adds 2 test cases to make sure service workers behave properly on
app bound domains, and that the APIs are not available on non-app
bound domains.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[SWInAppBrowserPrivacyMessageHandler userContentController:didReceiveScriptMessage:]):

4:40 PM Changeset in webkit [260302] by achristensen@apple.com
  • 7 edits in trunk

NetworkSessionCocoa should request client certificate only once per host/port
https://bugs.webkit.org/show_bug.cgi?id=210626
<rdar://problem/60340449>

Reviewed by Geoffrey Garen.

Source/WebKit:

NSURLSession creates more than one TCP connection to a server when using HTTP 1.1.
Each TCP connection with TLS generates a didReceiveChallenge to do the server trust evaluation of the certificate chain.
If the server requests a client certificate in the TLS handshake, it also generates a didReceiveChallenge to request client
certificates as well. This is an implementation detail of our networking. We should not actually ask the WKNavigationDelegate
for client certificates more than once per host/port. We should remember the credential and give it to NSURLSession immediately
if we have used this credential in the past for a task that has received bytes (either a response or a redirect). If the TLS
handshake fails, we should not reuse that same certificate automatically.

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

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::clientCertificateSuggestedForHost):
(WebKit::NetworkSessionCocoa::taskReceivedBytes):
(WebKit::NetworkSessionCocoa::taskFailed):
(WebKit::NetworkSessionCocoa::successfulClientCertificateForHost const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::clientCertServerWithCertVerifier):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::HTTPServer):

4:30 PM Changeset in webkit [260301] by dino@apple.com
  • 6 edits in trunk/Source/WebCore

[WebGL] Confirm there are no errors when setting up framebuffers
https://bugs.webkit.org/show_bug.cgi?id=210632
<rdar://problem/61916680>

Reviewed by Simon Fraser.

We're seeing crashes on macOS inside GraphicsContextGL::reshape().
Specifically when we submit work at the end of the function via
glFlush.

At the moment the cause is a mystery, because we should bail out
before then if the multisample renderbuffer was not complete. In
the hope that it helps somewhat, add a call to glGetError to double
check that there isn't anything horribly wrong before we talk to
the GPU.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::WebGL2RenderingContext): If the underlying
GCGL context was marked as "LOST" during initialization, skip the rest of our
initialization.

  • html/canvas/WebGLRenderingContext.cpp: Ditto.

(WebCore::WebGLRenderingContext::WebGLRenderingContext):

  • html/canvas/WebGLRenderingContextBase.cpp: Ditto.

(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: Check for a GL error during

setup and, if there is one, skip directly into a LOST state.
(WebCore::GraphicsContextGLOpenGL::reshape):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::reshape):

4:13 PM Changeset in webkit [260300] by Alan Coon
  • 1 copy in tags/Safari-609.2.7.1

Tag Safari-609.2.7.1.

4:06 PM Changeset in webkit [260299] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Bug 210646: REGRESSION (r260112): createArchiveList() leaks malloc memory on early returns due to an error
<https://webkit.org/b/210646>
<rdar://problem/61928031>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList):

  • Move early returns for protocolProperties, protocolProperties and mimeType above memory allocation to fix the memory leak.
4:05 PM Changeset in webkit [260298] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Bug 210645: REGRESSION (r211095): [iOS] TestRunnerWKWebView leaks @property accessibilitySpeakSelectionContent
<https://webkit.org/b/210645>
<rdar://problem/61927607>

Reviewed by Chris Fleizach.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView dealloc]):

  • Release accessibilitySpeakSelectionContent in -dealloc.
4:01 PM Changeset in webkit [260297] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r260279.
https://bugs.webkit.org/show_bug.cgi?id=210678

Throwing error would be more efficient, having a generic code
is still worth doing (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"[JSC] We do not need to have exit-check for Map/Set iterator
functions"
https://bugs.webkit.org/show_bug.cgi?id=210667
https://trac.webkit.org/changeset/260279

4:01 PM Changeset in webkit [260296] by Alan Coon
  • 8 edits in branches/safari-609.2.7-branch/Source

Versioning.

3:55 PM Changeset in webkit [260295] by beidson@apple.com
  • 17 edits in trunk

Pass sandbox extensions for back/forward list navigations after the policy is decided at process-swap time.
<rdar://problem/59535167> and https://bugs.webkit.org/show_bug.cgi?id=210623

Reviewed by Geoff Garen.

Source/WebKit:

Covered by almost all existing tests, and a new API test.

Instead of granting a sandbox extension when updating the back/forward cursor for a pending
back/forward list traversal, do so after the client decides the policy.
(Which is also along with a process swap in interesting cases)

  • Shared/PolicyDecision.h:

(WebKit::PolicyDecision::encode const):
(WebKit::PolicyDecision::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):

  • UIProcess/API/APINavigation.h:

(API::Navigation::create):
(API::Navigation::reloadItem const):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::backForwardGoToItem):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::createReloadNavigation):

  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::receivedPolicyDecision):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::receivedPolicyDecision):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::goToItem):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
3:45 PM Changeset in webkit [260294] by Alan Coon
  • 1 copy in branches/safari-609.2.7-branch

New branch.

3:41 PM Changeset in webkit [260293] by Peng Liu
  • 4 edits in trunk/Source/WebCore

Cleanup the macros for video fullscreen and picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=210638

Reviewed by Eric Carlson.

A follow-up patch to fix build failures of r260259.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
3:35 PM Changeset in webkit [260292] by Russell Epstein
  • 1 copy in tags/Safari-610.1.10

Tag Safari-610.1.10.

3:33 PM Changeset in webkit [260291] by Devin Rousso
  • 12 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r242018): using RegExp.prototype.test with a global RegExp will ignore one potential match after each successful match
https://bugs.webkit.org/show_bug.cgi?id=210671

Reviewed by Timothy Hatcher.

  • UserInterface/Base/SearchUtilities.js:

(WI.SearchUtilities.searchRegExpForString):
(WI.SearchUtilities.filterRegExpForString):
(WI.SearchUtilities._regExpForString):
(WI.SearchUtilities.regExpForString): Deleted.
Many uses of WI.SearchUtilities.regExpForString use the returned RegExp multiple times,
expecting each use to be done in isolation from every other use (e.g. filtering). In these
cases, the global flag g should not be set on the RegExp, as otherwise it will keep a
state of the last matched index, thereby breaking this isolation. As such, it is necessary
to split WI.SearchUtilities.regExpForString into two versions, one for each use case.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._highlightSearchResults):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.performSearch):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/ResourceSecurityContentView.js:

(WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch.forEachMatch):
Use WI.SearchUtilities.searchRegExpForString as these views expect the search to maintain
its current position throughout the contents of the view.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype._updateFilter):

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WI.IndexedDatabaseObjectStoreContentView.prototype.dataGridMatchNodeAgainstCustomFilters):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._urlFilterDidChange):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.customPerformSearch.searchResultCallback):

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.performSearch):
Use WI.SearchUtilities.filterRegExpForString as these views expect each search to be done
in isolation from every other search (e.g. filtering).

3:08 PM Changeset in webkit [260290] by ddkilzer@apple.com
  • 5 edits in trunk/Source

REGRESSION (r234105): [iOS] WKColorButton leaks a UIColor
<https://webkit.org/b/210658>
<rdar://problem/61938137>

Reviewed by Darin Adler.

Source/WebCore:

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::isKeyboardFocusable const):

  • page/Chrome.cpp:

(WebCore::Chrome::createColorChooser):

  • Drive-by fix of unreachable code on PLATFORM(IOS_FAMILY).

Source/WebKit:

  • UIProcess/ios/forms/WKFormColorPicker.mm:

(-[WKColorButton dealloc]): Add.

  • Release _color instance variable to fix leak.
2:48 PM Changeset in webkit [260289] by sbarati@apple.com
  • 8 edits
    1 add in trunk

GetTypedArrayByteOffset is broken on arm64e
https://bugs.webkit.org/show_bug.cgi?id=210631

Reviewed by Mark Lam.

JSTests:

  • stress/byte-offset-on-wasteful-neutered-arm64e.js: Added.

(foo):
(assert):
(transferArrayBuffer.array.buffer):

Source/JavaScriptCore:

The vector of JSArrayBufferView is signed even when null on arm64e. However, we were
comparing against zero, which is wrong. This patch changes it so we do the right thing
and instead compare against whatever constant (ptr=nullptr,size=0) signs as.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):

  • runtime/CagedBarrierPtr.h:

(JSC::CagedBarrierPtr::rawBits const):

  • runtime/JSArrayBufferView.h:

(JSC::JSArrayBufferView::nullVectorPtr):

Source/WTF:

  • wtf/CagedPtr.h:

(WTF::CagedPtr::rawBits const):

2:34 PM Changeset in webkit [260288] by Alan Coon
  • 4 edits
    1 add in branches/safari-609-branch

Cherry-pick r260278. rdar://problem/61950220

Bring Fullscreen API + alert() behavior from iOS to macOS
https://bugs.webkit.org/show_bug.cgi?id=210662

Reviewed by Eric Carlson.

Source/WebKit:

When a page is showing an alert(), all non-synchronous messages will be blocked until the sync XPC for alert()
ends. And when exiting fullscreen, we block completing the fullscreen exit animation until a repaint XPC completes.
So a page that is showing an alert() will never fully exit element fullscreen mode.

On iOS, we fixed this behavior by exiting fullscreen mode whenever the page shows an alert() or prompt(). We should
bring this behavior to macOS as well.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenAlert.mm: Added. (TestWebKitAPI::TEST):

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

2:34 PM Changeset in webkit [260287] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r260246. rdar://problem/61943700

offlineasm is generating the wrong load/store for the "orh" instruction.
https://bugs.webkit.org/show_bug.cgi?id=210639
<rdar://problem/21501876>

Reviewed by Robin Morisset.

For example, on ARM64E, the "orh" instruction was generating the following:

"\tldr w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\torr w17, w17, #64\n"
JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\tstr w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919

i.e. a 32-bit load, followed by a 32-bit OR, followed by a 32-bit store.

Instead, it should be generating the following:

"\tldrh w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\torr w17, w17, #64\n"
JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\tstrh w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919

i.e. a 16-bit load, followed by a 32-bit OR, followed by a 16-bit store.

This bug also affects ARM64, ARMv7, and MIPS (basically any backend that uses
riscLowerMisplacedAddresses() from rise.rb). It does not affect x86, x86_64, and
C_LOOP (which was written based on x86).

  • offlineasm/risc.rb:

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

2:34 PM Changeset in webkit [260286] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r260180. rdar://problem/61943707

[JSC] Use ensureStillAliveHere in FTL when content of storage should be kept alive
https://bugs.webkit.org/show_bug.cgi?id=210583
<rdar://problem/61831515>

Reviewed by Mark Lam.

The content of Butterfly / ArrayStorage is kept alive only when the owner JSCell is alive.
This means that we should keep the owner JSCell alive if we are loading content of storage
which includes JSCells. This patch inserts ensureStillAliveHere in FTL to ensure this invariant.

  • ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::~JITCode): Found that we get crash with dumpDisassembly if FTL::JITCode is destroyed while it fails to generate code while testing this.
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileGetByVal): (JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf): (JSC::FTL::DFG::LowerDFGToB3::compileArrayPop): (JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt): (JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt): (JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt): (JSC::FTL::DFG::LowerDFGToB3::compileGetByOffset): (JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):

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

2:34 PM Changeset in webkit [260285] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r259572. rdar://problem/61943713

[JSC] Put ensureStillAliveHere for Integer TypedArrays in GetByVal
https://bugs.webkit.org/show_bug.cgi?id=210047

Reviewed by Mark Lam.

While r258381 puts ensureStillAliveHere in FTL to keep base alive for float/double TypedArrays,
we need to do the same thing for integer TypedArrays too. This patch places it.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

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

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

[iOS] Deny iokit open access of unused class in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=210669

Reviewed by Brent Fulgham.

Telemetry shows that iokit open access of an iokit class can be removed from the WebContent sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:20 PM Changeset in webkit [260283] by Chris Dumez
  • 17 edits in trunk/Source/WebKit

[iOS] Refactor WebKit uploads process assertion logic to minimize chances of leaking them
https://bugs.webkit.org/show_bug.cgi?id=210664
<rdar://problem/61751982>

Reviewed by Geoff Garen.

To minimize chances of leaking "WebKit uploads" process assertion, the following refactoring
was done:

  1. WebKit upload assertions are now held by NetworkProcessProxy instead of the WebProcessPool. This makes more sense since uploads are tied to a particular network process. In base of a network process crash, we would not want those assertions to persist for example.
  2. Store all upload assertions (UIProcess + NetworkProcess + WebProcesses) into a single UploadActivity data structure that can easily be cleared. Make sure we clear it on network process crash.
  3. No longer on the WebProcess to send IPC whenever its has pending uploads or not. Instead, have the network process send such IPC. This makes more sense, especially now that all webkit upload process assertions are now stored on NetworkProcessProxy. It also makes it so that we deal properly with WebProcess crashes. In case of a WebProcess crash, its connection to the network process will get closed. NetworkConnectionToWebProcess::didClose() gets called and causes all NetworkResourceLoader objects for this connection to get destroyed. As a result, the network process will properly notify the UIProcess that this process no longer has any upload in progress.
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::hasUploadStateChanged):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkResourceLoadMap.cpp:

(WebKit::NetworkResourceLoadMap::NetworkResourceLoadMap):
(WebKit::NetworkResourceLoadMap::~NetworkResourceLoadMap):
(WebKit::NetworkResourceLoadMap::add):
(WebKit::NetworkResourceLoadMap::clear):
(WebKit::NetworkResourceLoadMap::take):
(WebKit::NetworkResourceLoadMap::setHasUpload):

  • NetworkProcess/NetworkResourceLoadMap.h:

(WebKit::NetworkResourceLoadMap::hasUpload const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setWebProcessHasUploads):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::pid const):

  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):

  • WebProcess/Network/WebLoaderStrategy.h:
2:19 PM Changeset in webkit [260282] by Brent Fulgham
  • 2 edits in trunk/Tools

Unreviewed build fix after r260269.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST): Correct argument order.

2:13 PM Changeset in webkit [260281] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r258385. rdar://problem/61948294

Pull in JS tests from "Internal" when there are "Internal" tests in an adjacent directory
https://bugs.webkit.org/show_bug.cgi?id=209038

Reviewed by Keith Miller.

This allows us to automatically pull in some tests that are in non open sourced Apple
checkouts.

  • Scripts/run-javascriptcore-tests: (runJSCStressTests):

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

2:05 PM Changeset in webkit [260280] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

2:03 PM Changeset in webkit [260279] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] We do not need to have exit-check for Map/Set iterator functions
https://bugs.webkit.org/show_bug.cgi?id=210667

Reviewed by Michael Saboff.

If the intrinsic's DFG node does not support general cases, we should check exit-frequency to avoid exit-recompile loop.
However, Map/Set iterator creation functions (values, keys, entries) always require Map / Set types. And throwing an error
when this is not met. So, the current DFG nodes for these intrinsic supports all the cases except for the case throwing an
error, and error will exit anyway. So we do not need to have this exit-frequency guard here.

This path is already tested by map-iterator-check-before-fail.js / set-iterator-check-before-fail.js.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

1:41 PM Changeset in webkit [260278] by jer.noble@apple.com
  • 4 edits
    1 add in trunk

Bring Fullscreen API + alert() behavior from iOS to macOS
https://bugs.webkit.org/show_bug.cgi?id=210662

Reviewed by Eric Carlson.

Source/WebKit:

When a page is showing an alert(), all non-synchronous messages will be blocked until the sync XPC for alert()
ends. And when exiting fullscreen, we block completing the fullscreen exit animation until a repaint XPC completes.
So a page that is showing an alert() will never fully exit element fullscreen mode.

On iOS, we fixed this behavior by exiting fullscreen mode whenever the page shows an alert() or prompt(). We should
bring this behavior to macOS as well.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):

Tools:

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

(TestWebKitAPI::TEST):

1:15 PM Changeset in webkit [260277] by don.olmstead@sony.com
  • 20 edits
    1 add in trunk

[CMake] Add WebKit::WebCore target
https://bugs.webkit.org/show_bug.cgi?id=210445

Reviewed by Michael Catanzaro.

.:

Add a target file for internal Apple Windows builds.

  • Source/cmake/target/WebCore.cmake: Added.

Source/WebCore:

Add a WebKit::WebCore target. Remove the WebCoreHeaderInterface target since
the WebKit::WebCore target is functionaly the same.

  • CMakeLists.txt:

Source/WebKit:

Use the WebKit::WebCore target within the WebKit target.

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy:

Use the WebKit::WebCore target within WebKitLegacy.

  • CMakeLists.txt:
  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Tools:

Use the WebKit::WebCore target within tests and developer tools.

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
  • MiniBrowser/wpe/CMakeLists.txt:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/glib/CMakeLists.txt:
1:04 PM Changeset in webkit [260276] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Turn async frame and overflow scrolling on by default on macOS
https://bugs.webkit.org/show_bug.cgi?id=210661
rdar://problem/60420037

Reviewed by Tim Horton.

Flip the plist value and the default value for macOS which is outside of the feature flag #ifdef.

Testing keeps async overflow scrolling off by default, so this should not affect testing.

This only impacts WebKit2.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled):

12:46 PM Changeset in webkit [260275] by Devin Rousso
  • 8 edits
    1 move in trunk

Rename NullishEq / NULLISHEQUAL to CoalesceEq / COALESCEEQUAL to match the spec
https://bugs.webkit.org/show_bug.cgi?id=210663

Reviewed by Ross Kirsling.

JSTests:

  • stress/logical-assignment-operator-coalesce.js: Renamed from stress/logical-assignment-operator-nullish.js.

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitShortCircuitAssignment):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeAssignNode):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/ParserTokens.h:
12:32 PM Changeset in webkit [260274] by Ryan Haddad
  • 9 edits
    8 deletes in trunk

Unreviewed, reverting r260245.

The tests added with this change are frequently failing on
macOS bots.

Reverted changeset:

"Safari doesn't apply frameRate limit when request stream from
Camera"
https://bugs.webkit.org/show_bug.cgi?id=210186
https://trac.webkit.org/changeset/260245

12:31 PM Changeset in webkit [260273] by Devin Rousso
  • 28 edits
    6 adds in trunk

Implement Promise.any and AggregateError
https://bugs.webkit.org/show_bug.cgi?id=202566

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

Promise.any resolves when any of the given promises resolve, but only rejects if _all_
of the given promises reject. In order to support aggregating all of the reason values
for all of the rejections, a new error type AggregateError is introduced which has an
get errors that returns an aggregated array of the reason values.

  • builtins/PromiseConstructor.js:

(all.newResolveElement):
(allSettled.newResolveRejectElements):
(any): Added.
(any.newRejectElement): Added.

  • runtime/JSPromiseConstructor.cpp:
  • builtins/BuiltinNames.h:
  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::errorStructure const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::initializeAggregateErrorConstructor): Added.
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
Expose @AggregateError for builtins.

  • runtime/AggregateError.h: Added.

(JSC::AggregateError::destroy):
(JSC::AggregateError::subspaceFor):
(JSC::AggregateError::createStructure):
(JSC::AggregateError::create):
(JSC::AggregateError::errors const):

  • runtime/AggregateError.cpp: Added.

(JSC::AggregateError::AggregateError):
(JSC::AggregateError::visitChildren):
(JSC::AggregateError::create):
(JSC::AggregateError::finishCreation):

  • runtime/AggregateErrorPrototype.h: Added.
  • runtime/AggregateErrorPrototype.cpp: Added.

(JSC::AggregateErrorPrototype::AggregateErrorPrototype):
(JSC::AggregateErrorPrototype::finishCreation):
(JSC::aggregateErrorPrototypeAccessorErrors):

  • runtime/AggregateErrorConstructor.h: Added.
  • runtime/AggregateErrorConstructor.cpp: Added.

(JSC::callAggregateErrorConstructor):
(JSC::constructAggregateErrorConstructor):
(JSC::AggregateErrorConstructor::AggregateErrorConstructor):
(JSC::AggregateErrorConstructor::finishCreation):

  • runtime/ErrorType.h:
  • runtime/ErrorType.cpp:

(JSC::errorTypeName):

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

(JSC::VM::VM):
Make an IsoSubspace for AggregateError as it has a different size than ErrorInstance.

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::create):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):

  • wasm/js/JSWebAssemblyCompileError.cpp:

(JSC::JSWebAssemblyCompileError::create):

  • wasm/js/JSWebAssemblyLinkError.cpp:

(JSC::JSWebAssemblyLinkError::create):

  • wasm/js/JSWebAssemblyRuntimeError.cpp:

(JSC::JSWebAssemblyRuntimeError::create):
Assign to ErrorInstance member variables inside ErrorInstance::finishCreation instead of
inside ErrorInstance::create so that subclasses don't have to do the work as well.

  • runtime/Error.cpp:

(JSC::createError):

  • runtime/ErrorPrototype.h:

(JSC::ErrorPrototype::createStructure):

  • runtime/NativeErrorPrototype.h:

(JSC::NativeErrorPrototype::createStructure):
Drive-by: fix incorrect usage of ErrorInstanceType since ErrorPrototype does not inherit

from ErrorInstance (and therefore neither does NativeErrorPrototype).

  • runtime/ArgList.h:

Add WTF_MAKE_NONMOVABLE to MarkedArgumentBuffer.

Source/WebInspectorUI:

  • UserInterface/Models/IssueMessage.js:

Mark AggregateError as a WI.IssueMessage.Type.SemanticIssue.

12:26 PM Changeset in webkit [260272] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r259463): [ Mojave Debug ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing and timing out
https://bugs.webkit.org/show_bug.cgi?id=210219

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Test transitioned from timeout -> failure.
12:10 PM Changeset in webkit [260271] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/cocoa/AGXCompilerService.cpp:
11:55 AM Changeset in webkit [260270] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION ( r254044 ): [ Win ] css1/box_properties/padding_left.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207480

Unreviewed test gardening.

Adjusted this test expectation and others in the Windows category with lint alerts.

  • platform/win/TestExpectations:
11:35 AM Changeset in webkit [260269] by graouts@webkit.org
  • 2 edits in trunk/Tools

Stop including style rules related to media controls in the UA style sheet when Modern Media Controls are enabled
https://bugs.webkit.org/show_bug.cgi?id=210606

Unreviewed build fix after r260261.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

11:22 AM Changeset in webkit [260268] by Russell Epstein
  • 1 copy in tags/Safari-609.2.7

Tag Safari-609.2.7.

11:06 AM Changeset in webkit [260267] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Layout Test fast/text/variations/ipc2.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189550

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:04 AM Changeset in webkit [260266] by Alan Coon
  • 539 edits
    19 adds
    160 deletes in branches/safari-610.1.10-branch/Source/ThirdParty/ANGLE

Revert r259589. rdar://problem/61942180

10:57 AM Changeset in webkit [260265] by Ross Kirsling
  • 16 edits in trunk/Source/JavaScriptCore

Clean up some Intl classes following the ICU upgrade
https://bugs.webkit.org/show_bug.cgi?id=210637

Reviewed by Yusuke Suzuki.

In r259606, I removed the compile-time guards for {DateTimeFormat, NumberFormat}.prototype.formatToParts,
but I forgot to move the method setup back to the lookup table.

This patch addresses that and prunes various other unnecessary includes and forward declarations.

  • runtime/IntlCollator.h:
  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::create):
(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatConstructor.h:
  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::create):
(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.h:
  • runtime/IntlPluralRulesConstructor.h:
  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::create):
(JSC::IntlPluralRulesPrototype::finishCreation):

  • runtime/IntlPluralRulesPrototype.h:
10:56 AM Changeset in webkit [260264] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207642

Unreviewed test gardening.

Removed duplicate expectations.

  • platform/mac/TestExpectations:
10:44 AM Changeset in webkit [260263] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add telemetry to some mach lookup sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=210657

Reviewed by Darin Adler.

Add telemetry in order to learn more about how some of the mach lookup extensions are being used in the WebContent process on iOS.

No new tests, since this patch does not change any behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:43 AM Changeset in webkit [260262] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
https://bugs.webkit.org/show_bug.cgi?id=203291

Unreviewed test gardening.

Removed duplicate test expectations.

  • platform/ios/TestExpectations:
10:24 AM Changeset in webkit [260261] by graouts@webkit.org
  • 7 edits in trunk/Source/WebCore

Stop including style rules related to media controls in the UA style sheet when Modern Media Controls are enabled
https://bugs.webkit.org/show_bug.cgi?id=210606

Reviewed by Antti Koivisto and Daniel Bates.

There is no need to insert style rules related to media controls in the UA stylesheet when Modern Media Controls are enabled.
There is one rule from mediaControlsApple.css for the default sizing of <audio> that makes sense broadly for content on the Web
so we move that to html.css. We also set the background-color property for media documents in html.css.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio): Deleted.
(body:-webkit-full-page-media): Deleted.

  • Modules/mediacontrols/mediaControlsiOS.css:

(body:-webkit-full-page-media): Deleted.

  • Modules/modern-media-controls/controls/media-document.css:

(:host(.media-document)):

  • css/html.css:

(body:-webkit-full-page-media):
(audio):

  • css/mediaControls.css:

(body:-webkit-full-page-media): Deleted.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

10:17 AM Changeset in webkit [260260] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Validate socket in NetworkRTCProvider::wrapNewTCPConnection
https://bugs.webkit.org/show_bug.cgi?id=210594

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
Add a null check in case the identifier does not relate to an existing pending socket.

10:13 AM Changeset in webkit [260259] by Peng Liu
  • 33 edits in trunk/Source

Cleanup the macros for video fullscreen and picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=210638

Reviewed by Eric Carlson.

Source/WebCore:

Replace some "#if PLATFORM(IOS_FAMILY) and all "#if (PLATFORM(IOS_FAMILY) && HAVE(AVKIT))
(PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))"
(PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))"

with "#if ENABLE(VIDEO_PRESENTATION_MODE)".

No new tests, no functional change.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):

  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • platform/PictureInPictureSupport.h:
  • platform/cocoa/VideoFullscreenChangeObserver.h:
  • platform/cocoa/VideoFullscreenModel.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(WebCore::supportsPictureInPicture):

Source/WebKit:

Replace some "#if PLATFORM(IOS_FAMILY) and all "#if (PLATFORM(IOS_FAMILY) && HAVE(AVKIT))
(PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))"
(PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))"

with "#if ENABLE(VIDEO_PRESENTATION_MODE)".

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerProxy::updateVideoFullscreenInlineImage):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::viewDidLeaveWindow):
(WebKit::WebPageProxy::exitFullscreenImmediately):

  • UIProcess/WebPageProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:
  • WebProcess/cocoa/VideoFullscreenManager.messages.in:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

Source/WTF:

Add macro ENABLE_VIDEO_PRESENTATION_MODE.

  • wtf/PlatformEnable.h:
10:01 AM Changeset in webkit [260258] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Resolve the minimum width for overlapping spanner columns
https://bugs.webkit.org/show_bug.cgi?id=210654

Reviewed by Antti Koivisto.

The extra horizontal space distribution is based on the columns' minimum widths.
In case of column spanners, first we need to distribute the spanner's minimum
width across the columns using the non-spanning minimum widths as the distribution ratio.
When there's no non-spanning minimum width for a column (all rows have column spanners for tbis particular column)
the minimum width gets distributed equally across the spanned columns. This distribution starts with the shortest columns spans
so that we can use these resolved column widths to compute the wider ones.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

9:36 AM Changeset in webkit [260257] by Claudio Saavedra
  • 2 edits in trunk/Source/WTF

[GTK][WPE] Bump dependencies minimum required version in Platform.h
https://bugs.webkit.org/show_bug.cgi?id=210651

Reviewed by Adrian Perez de Castro.

Bring the minimum required version in Platform.h in sync with the actual
minimal required version. This ensures that deprecated APIs used bring up
compilation warnings.

  • wtf/Platform.h:
9:24 AM Changeset in webkit [260256] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION: (r260243) [ Mac and iOS ] imported/w3c/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html fails.
https://bugs.webkit.org/show_bug.cgi?id=210655

Unreviewed test gardening.

  • web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent-expected.txt:
8:50 AM Changeset in webkit [260255] by Claudio Saavedra
  • 9 edits in trunk

[GTK] Update for GdkKeymap API changes
https://bugs.webkit.org/show_bug.cgi?id=210642

Reviewed by Adrian Perez de Castro.

No new tests needed.

gdk_keymap_get_default() is deprecated in GTK+ 3.22, so use
gdk_keymap_get_for_display() instead. Since in GTK4 this method is
removed to gdk_display_get_keymap(), add a helper to
GtkVersioning.h to avoid cluttering with ifdefs all over the
place.

Source/WebCore:

  • platform/gtk/GtkVersioning.h:

(gdk_keymap_get_for_display):

  • platform/gtk/PlatformKeyboardEventGtk.cpp:

(WebCore::PlatformKeyboardEvent::currentCapsLockState):
(WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):

Source/WebKit:

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::doKeyStrokeEvent):

Tools:

  • TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:

(WebViewTest::keyStroke):

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:

(TestWebKitAPI::doKeyStroke):

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::keyDown):

8:49 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
8:47 AM Changeset in webkit [260254] by graouts@webkit.org
  • 6 edits in trunk

Allow the UserStyleLevel to be set through _WKUserStyleSheet
https://bugs.webkit.org/show_bug.cgi?id=210653
<rdar://problem/60506645>

Reviewed by Tim Horton.

Source/WebKit:

Add a new _WKUserStyleLevel enum such that we may provide the specificity level of the backing UserStyleSheet, represented by the UserStyleLevel enum in WebCore.

  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:level:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:level:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:userContentWorld:]): Deleted.

  • UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h:

(API::toWebCoreUserStyleLevel):

Tools:

Add new tests for the "level" parameter when creating a _WKUserStyleSheet.

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

8:41 AM Changeset in webkit [260253] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Reduce test iterations for stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js on mips
https://bugs.webkit.org/show_bug.cgi?id=210641

Patch by Paulo Matos <Paulo Matos> on 2020-04-17
Reviewed by Yusuke Suzuki.

Reduce test iteration count on mips for which the current value is too high.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
8:24 AM Changeset in webkit [260252] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][X11] REGRESSION(r259944): Wrong position of select popup menu in X11
https://bugs.webkit.org/show_bug.cgi?id=210603

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-04-17
Reviewed by Michael Catanzaro.

gdk_window_move_to_rect expects the given rectangle in coordinates relative to the top-left corner of the window
that the popup window is transient for. We were using screen coordinates.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu): Translate widget coordinates to window coordinates before passing
the rectangle to gdk_window_move_to_rect().

8:02 AM Changeset in webkit [260251] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r256756): -[WKUserDefaults initWithSuiteName:]: Instance variable used while 'self' is not set to the result of '[(super or self) init...]'
<https://webkit.org/b/210647>
<rdar://problem/61928289>

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults initWithSuiteName:]):

  • Call [self initWithSuite:] and set self to fix the clang static analyzer warning.
  • Fix camelCase of suitename parameter.
7:57 AM Changeset in webkit [260250] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r162729): [iOS] WebKitTestRunner over-releases UITextField in WTR::PlatformWebView::removeChromeInputField()
<https://webkit.org/b/210643>
<rdar://problem/61927190>

Reviewed by Wenson Hsieh.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::removeChromeInputField):

  • Remove unnecessary -release.
7:46 AM Changeset in webkit [260249] by Oriol Brufau
  • 27 edits in trunk

Revert "[css-grid] Exclude implicit grid tracks from the resolved value"
https://bugs.webkit.org/show_bug.cgi?id=210617

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

WPT tests are not reverted for now, just updating the expectations.

  • web-platform-tests/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-support-grid-template-columns-rows-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-support-named-grid-lines-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-support-repeat-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-support-flexible-lengths-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-support-grid-template-columns-rows-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-support-named-grid-lines-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-support-repeat-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-layout-properties-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent-expected.txt:

Source/WebCore:

Revert r254561 since it appears to be breaking site authoring tools
which were relying on the previous behaviour.

Tests: fast/css-grid-layout/grid-auto-columns-rows-get-set.html

fast/css-grid-layout/grid-columns-rows-get-set.html
fast/css-grid-layout/grid-template-shorthand-get-set.html
fast/css-grid-layout/mark-as-infinitely-growable.html
fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html
fast/css-grid-layout/negative-growth-share-as-infinity-crash.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-support-grid-template-columns-rows-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-support-named-grid-lines-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-support-repeat-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-support-flexible-lengths-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-support-grid-template-columns-rows-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-support-named-grid-lines-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-support-repeat-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-layout-properties.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::trackSizesForComputedStyle const):

LayoutTests:

Revert r254561 since it appears to be breaking site authoring tools
which were relying on the previous behaviour.

  • fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
  • fast/css-grid-layout/mark-as-infinitely-growable.html:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
  • fast/css-grid-layout/negative-growth-share-as-infinity-crash.html:
7:41 AM Changeset in webkit [260248] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

[JSC] Map/Set iterator creation functions should fail with BadType etc. before executing insertChecks
https://bugs.webkit.org/show_bug.cgi?id=210649
<rdar://problem/61925452>

Reviewed by Mark Lam.

JSTests:

  • stress/map-iterator-check-before-fail.js: Added.

(test):

  • stress/set-iterator-check-before-fail.js: Added.

(set new):
(set var):

Source/JavaScriptCore:

Since insertChecks adds some DFG nodes, we should determine whether this intrinsic handling is OK or not before executing insertChecks.
Otherwise, we will hit an assertion with !didInsertChecks.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

7:40 AM Changeset in webkit [260247] by pvollan@apple.com
  • 22 edits
    3 adds in trunk

[iOS] Deny iokit open access to graphics related classes
https://bugs.webkit.org/show_bug.cgi?id=210616

Reviewed by Darin Adler.

Source/WebCore:

Deny iokit open access to graphics related classes in the WebContent process on iOS, but issue
extensions for these for some devices which still need access to them.

API test: WebKit.IOKitOpenSandboxAccessForDeviceWithAGXCompilerService

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/AGXCompilerService.cpp: Added.

(WebCore::setDeviceHasAGXCompilerServiceForTesting):
(WebCore::deviceHasAGXCompilerService):

  • platform/cocoa/AGXCompilerService.h: Added.
  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxIOKitOpenAccessToClass):

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

(WebCore::Internals::hasSandboxIOKitOpenAccessToClass):

Source/WebKit:

Deny iokit open access to graphics related classes in the WebContent process on iOS, but issue
extensions for these for some devices which still need access to them.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtension::createHandleForIOKitClassExtension):

  • Shared/SandboxExtension.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _setDeviceHasAGXCompilerServiceForTesting]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::deviceHasAGXCompilerService): Deleted.

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

(WebKit::WebPageProxy::setDeviceHasAGXCompilerServiceForTesting const):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/spi/darwin/SandboxSPI.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AGXCompilerService.mm: Added.

(TEST):

7:38 AM Changeset in webkit [260246] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

offlineasm is generating the wrong load/store for the "orh" instruction.
https://bugs.webkit.org/show_bug.cgi?id=210639
<rdar://problem/21501876>

Reviewed by Robin Morisset.

For example, on ARM64E, the "orh" instruction was generating the following:

"\tldr w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\torr w17, w17, #64\n"
JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\tstr w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919

i.e. a 32-bit load, followed by a 32-bit OR, followed by a 32-bit store.

Instead, it should be generating the following:

"\tldrh w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\torr w17, w17, #64\n"
JavaScriptCore/llint/LowLevelInterpreter64.asm:919
"\tstrh w17, [x1, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:919

i.e. a 16-bit load, followed by a 32-bit OR, followed by a 16-bit store.

This bug also affects ARM64, ARMv7, and MIPS (basically any backend that uses
riscLowerMisplacedAddresses() from rise.rb). It does not affect x86, x86_64, and
C_LOOP (which was written based on x86).

  • offlineasm/risc.rb:
7:22 AM Changeset in webkit [260245] by youenn@apple.com
  • 9 edits
    8 adds in trunk

Safari doesn't apply frameRate limit when request stream from Camera
https://bugs.webkit.org/show_bug.cgi?id=210186
<rdar://problem/61452794>

Reviewed by Eric Carlson.

Source/WebCore:

Add support to RealtimeVideoSource to decimate the video samples based on the observed frame rate of its capture source.
This allows supporting two tracks using the same capture device, one track being low frame rate and the other one high frame rate.

Clean-up refactoring to make RealtimeVideoSource directly inherit from RealtimeVideoCaptureSource.
Migrate size and format of frame adaptation from RealtimeVideoCaptureSource to RealtimeVideoSource.
Fix mock capture source to update its frame rate when asked by applyConstraints.

Tests: fast/mediastream/mediastreamtrack-video-frameRate-clone-decreasing.html

fast/mediastream/mediastreamtrack-video-frameRate-clone-increasing.html
fast/mediastream/mediastreamtrack-video-frameRate-decreasing.html
fast/mediastream/mediastreamtrack-video-frameRate-increasing.html

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::dispatchMediaSampleToObservers):
(WebCore::RealtimeVideoCaptureSource::clientUpdatedSizeAndFrameRate):

  • platform/mediastream/RealtimeVideoCaptureSource.h:

(WebCore::RealtimeVideoCaptureSource::observedFrameRate const):

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::RealtimeVideoSource):
(WebCore::m_source):
(WebCore::RealtimeVideoSource::adaptVideoSample):
(WebCore::RealtimeVideoSource::videoSampleAvailable):

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::setFrameRateWithPreset):

  • testing/Internals.cpp:

(WebCore::Internals::observeMediaStreamTrack):

LayoutTests:

  • fast/mediastream/mediastreamtrack-video-frameRate-clone-decreasing-expected.txt: Added.
  • fast/mediastream/mediastreamtrack-video-frameRate-clone-decreasing.html: Added.
  • fast/mediastream/mediastreamtrack-video-frameRate-clone-increasing-expected.txt: Added.
  • fast/mediastream/mediastreamtrack-video-frameRate-clone-increasing.html: Added.
  • fast/mediastream/mediastreamtrack-video-framerate-decreasing-expected.txt: added.
  • fast/mediastream/mediastreamtrack-video-framerate-decreasing.html: added.
  • fast/mediastream/mediastreamtrack-video-framerate-increasing-expected.txt: added.
  • fast/mediastream/mediastreamtrack-video-framerate-increasing.html: added.
  • webrtc/routines.js:
6:36 AM WebKitGTK/Gardening/Howto edited by Lauro Moura
Update flakiness dashboard link (diff)
5:53 AM Changeset in webkit [260244] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] UI process crash when entering compositing mode when WPE_RENDERER is enabled
https://bugs.webkit.org/show_bug.cgi?id=209118

Reviewed by Michael Catanzaro.

Check if EGL_WL_bind_wayland_display extension is available when using WPE_RENDERER, since we don't suport the
SHM interface.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::checkRequirements): Return false if EGL_WL_bind_wayland_display is not present.

3:16 AM Changeset in webkit [260243] by Alexey Shvayka
  • 31 edits
    3 adds
    5 deletes in trunk

MediaQueryList should extend EventTarget
https://bugs.webkit.org/show_bug.cgi?id=203288

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent-expected.txt:
  • web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt:
  • web-platform-tests/css/cssom-view/MediaQueryList-extends-EventTarget-expected.txt:
  • web-platform-tests/css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt:
  • web-platform-tests/css/cssom-view/MediaQueryListEvent-expected.txt:
  • web-platform-tests/css/cssom-view/idlharness-expected.txt:
  • web-platform-tests/css/cssom-view/matchMedia-expected.txt:

Source/WebCore:

Initially, CSSOM View Module specification [1] had a custom callback mechanism with addListener() and removeListener(),
and the callback was invoked with the associated MediaQueryList as argument.

Now the normal event mechanism [2] is used instead. For backwards compatibility, addListener() and removeListener()
methods are basically aliases for addEventListener() and removeEventListener(), respectively, and the "change" event
masquerades as a MediaQueryList.

This patch implements new event mechanism, aligning WebKit with Blink and SpiderMonkey, and also fixes
a few minor spec incompatibilities: mandatory listener argument, "handleEvent" support, and listeners call order.

[1]: https://www.w3.org/TR/2011/WD-cssom-view-20110804/#mediaquerylist
[2]: https://www.w3.org/TR/cssom-view-1/#mediaquerylist

Tests: fast/media/media-query-list-07.html

web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html
web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html
web-platform-tests/css/cssom-view/MediaQueryList-extends-EventTarget.html
web-platform-tests/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html
web-platform-tests/css/cssom-view/MediaQueryListEvent.html
web-platform-tests/css/cssom-view/idlharness.html
web-platform-tests/css/cssom-view/matchMedia.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/test/JS/*: Updated.
  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::MediaQueryList):
(WebCore::MediaQueryList::create):
(WebCore::MediaQueryList::~MediaQueryList):
(WebCore::MediaQueryList::addListener):
(WebCore::MediaQueryList::removeListener):

  • css/MediaQueryList.h:
  • css/MediaQueryList.idl:
  • css/MediaQueryListEvent.cpp: Added.

(WebCore::MediaQueryListEvent::MediaQueryListEvent):

  • css/MediaQueryListEvent.h: Added.
  • css/MediaQueryListEvent.idl: Added.
  • css/MediaQueryListListener.h: Removed.
  • css/MediaQueryListListener.idl: Removed.
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::documentDestroyed):
(WebCore::MediaQueryMatcher::addMediaQueryList):
(WebCore::MediaQueryMatcher::removeMediaQueryList):
(WebCore::MediaQueryMatcher::matchMedia):
(WebCore::MediaQueryMatcher::evaluateAll):
(WebCore::MediaQueryMatcher::addListener): Deleted.
(WebCore::MediaQueryMatcher::removeListener): Deleted.

  • css/MediaQueryMatcher.h:
  • dom/EventNames.in:
  • dom/EventTarget.h:

(WebCore::EventTarget::removeEventListener):

  • dom/EventTargetFactory.in:

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

  • TestExpectations:
  • fast/media/media-query-list-07-expected.txt:
  • fast/media/media-query-list-07.html:
2:35 AM Changeset in webkit [260242] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r260123

No new tests needed.

  • platform/gtk/CursorGtk.cpp:

(WebCore::createCustomCursor): Pass missing pixel buffer data pointer to gdk_memory_texture_new().

1:40 AM Changeset in webkit [260241] by youenn@apple.com
  • 10 edits in trunk/Source

Make use of WeakHashSet for MediaStreamTrackPrivate and RealtimeMediaSource observers
https://bugs.webkit.org/show_bug.cgi?id=210492

Reviewed by Geoffrey Garen.

Source/WebCore:

We are making use of WeakHashSet to improve the robustness of the code.
For that purpose we use the new WeakHashSet::forEach method.
No change of behavior.

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::forEachObserver const):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver):
(WebCore::MediaStreamTrackPrivate::addObserver):
(WebCore::MediaStreamTrackPrivate::removeObserver):
(WebCore::MediaStreamTrackPrivate::forEachObserver const): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::hasObserver const): Deleted.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::addAudioSampleObserver):
(WebCore::RealtimeMediaSource::removeAudioSampleObserver):
(WebCore::RealtimeMediaSource::addObserver):
(WebCore::RealtimeMediaSource::removeObserver):
(WebCore::RealtimeMediaSource::forEachObserver):
(WebCore::RealtimeMediaSource::notifyMutedObservers):
(WebCore::RealtimeMediaSource::requestToEnd):
(WebCore::RealtimeMediaSource::forEachObserver const): Deleted.
(WebCore::RealtimeMediaSource::notifyMutedObservers const): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:

Source/WTF:

  • wtf/WeakHashSet.h:
1:37 AM Changeset in webkit [260240] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Not fully hooked in BuildSlaveSupport
https://bugs.webkit.org/show_bug.cgi?id=210548

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-17
Reviewed by Carlos Alberto Lopez Perez.

  • Scripts/webkitdirs.pm:

(determineBaseProductDir): Flatpak SDK builds use a dedicated product directory per port.

12:52 AM Changeset in webkit [260239] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Move allowPlugins to FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=205876

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-17
Reviewed by Darin Adler.

Source/WebCore:

Move allowPlugins to FrameLoader to reduce
pointer dereferences and lessen dependency
on SubframeLoader. Also rename to
arePluginsEnabled since the method is asking
the Setting with the same name.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::rendererIsEverNeeded):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::arePluginsEnabled):

  • loader/FrameLoader.h:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::createJavaAppletWidget):
(WebCore::SubframeLoader::allowPlugins): Deleted.

  • loader/SubframeLoader.h:
  • plugins/DOMMimeType.cpp:

(WebCore::DOMMimeType::enabledPlugin const):

Source/WebKit:

Adapt to API change.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::pluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):
(WebKit::WebPage::canShowMIMEType const):

Source/WebKitLegacy/mac:

Adapt to API change.

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):

  • WebView/WebFrame.mm:

(-[WebFrame _canProvideDocumentSource]):

Source/WebKitLegacy/win:

Adapt to API change.

  • WebView.cpp:

(WebView::canShowMIMEType):

12:35 AM Changeset in webkit [260238] by commit-queue@webkit.org
  • 5 edits in trunk

Fix an integer overflow in WebCrypto AES-CTR Mac implementation, which may detect a false loop
https://bugs.webkit.org/show_bug.cgi?id=210540

Source/WebCore:

(1 << counterLength) causes an integer overflow, and the undefined behavior.
The longest valid counterLength on 64 bit machine is 63,
and the literal 1 is considered as 32-bit signed integer.
Left shifting 1 beyond or to sign-bit is undefined behavior in C++ spec.

This issue is originally found in https://bugs.webkit.org/show_bug.cgi?id=208186#c2

Patch by Tomoki Imai <Tomoki Imai> on 2020-04-17
Reviewed by Jiewen Tan.

Test: crypto/subtle/aes-ctr-import-key-encrypt.html

  • crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:

(WebCore::transformAES_CTR):

LayoutTests:

Patch by Tomoki Imai <Tomoki Imai> on 2020-04-17
Reviewed by Jiewen Tan.

Added more AES-CTR tests for AesCtrParams.length larger than 32.

  • crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
  • crypto/subtle/aes-ctr-import-key-encrypt.html:

Apr 16, 2020:

9:57 PM Changeset in webkit [260237] by Ross Kirsling
  • 5 edits in trunk

REGRESSION(r259480): Two new failing i18n tests
https://bugs.webkit.org/show_bug.cgi?id=210605

Reviewed by Darin Adler.

JSTests:

  • stress/date-toLocaleString.js:

Tests shouldn't rely on system default time zone.

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::isUTCEquivalent):
(JSC::defaultTimeZone):
(JSC::canonicalizeTimeZoneName):
The default time zone needs to be canonicalized too.

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):
(JSC::resolveLocale):
Deal with some odd ""_s cases from my previous patch.
(Drive-by fix inspired by Darin's comments on this one.)

9:34 PM Changeset in webkit [260236] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] A couple of API tests are flaky failing on X11.

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
9:08 PM Changeset in webkit [260235] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Cleanup the usage of ENABLE_FULLSCREEN_API
https://bugs.webkit.org/show_bug.cgi?id=210630

Reviewed by Daniel Bates.

Replace "#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API" with
"#if ENABLE(FULLSCREEN_API)".

No new tests, no functional change

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

(WKBundlePageSetFullScreenClient):
(WKBundlePageWillEnterFullScreen):
(WKBundlePageDidEnterFullScreen):
(WKBundlePageWillExitFullScreen):
(WKBundlePageDidExitFullScreen):

6:55 PM Changeset in webkit [260234] by Simon Fraser
  • 4 edits
    2 adds in trunk

Scrolling-tree hit-testing is off by top content inset
https://bugs.webkit.org/show_bug.cgi?id=210629
<rdar://problem/61848883>

Reviewed by Tim Horton.

Source/WebCore:

r259936 added a point conversion from the superlayer of the root content layer,
to fix RTL, but this also pulled in top content inset, which we don't want.

Instead, do the RTL fix by factoring in scroll origin.

Test: fast/scrolling/mac/async-scroll-overflow-top-inset.html

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::scrollingNodeForPoint):

LayoutTests:

Test for scroller hit-testing with top content inset.

  • fast/scrolling/mac/async-scroll-overflow-top-inset-expected.txt: Added.
  • fast/scrolling/mac/async-scroll-overflow-top-inset.html: Added.
6:13 PM Changeset in webkit [260233] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Distinguish between an empty WKAppBoundDomains array and a missing entry
https://bugs.webkit.org/show_bug.cgi?id=210628
<rdar://problem/61909669>

Reviewed by Brent Fulgham.

Currently we treat a missing WKAppBoundDomains key the same as an empty
key, which is incorrect. Having the key present, even with no entries,
should opt an app into app-bound domain behavior.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::initializeAppBoundDomains):
(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):

6:09 PM Changeset in webkit [260232] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add a new 'limitNavigationsToAppBoundDomains' property to WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=210620
<rdar://problem/61903225>

Reviewed by Andy Estes.

Follow-up fix. The property exposed by WKWebViewConfiguration should not
use a local BOOL; it simply exposes the APIPageConfiguration value.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration limitsNavigationToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationToAppBoundDomains:]):
(-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):

5:53 PM Changeset in webkit [260231] by Brent Fulgham
  • 7 edits in trunk/Source/WebKit

Switch NetworkProcess and NetworkProcessProxy messages to use CallbackID class
https://bugs.webkit.org/show_bug.cgi?id=210566
<rdar://problem/61791784>

Reviewed by David Kilzer.

Instead of using the raw uint64_t type to represent callbacks, use the purpose
built WebKit::CallbackID type.

Tested by existing cases.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::didFetchWebsiteData):
(WebKit::NetworkProcessProxy::didDeleteWebsiteData):
(WebKit::NetworkProcessProxy::didDeleteWebsiteDataForOrigins):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
5:21 PM Changeset in webkit [260230] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Try to fix the macCatalyst build

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

(uiImageForImage):
(createTargetedPreview):
(createFallbackTargetedPreview):
(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):

5:17 PM Changeset in webkit [260229] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Re-land: [IPC Hardening] MachMessage::create() should use checked arithmetic
<https://webkit.org/b/210572>
<rdar://problem/61729947>

Reviewed by Chris Dumez.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendOutgoingMessage):

  • Add nullptr check since MachMessage::create() can return an empty std::unique_ptr<> now.
  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):

  • Use CheckedSize to compute the buffer size.
5:05 PM Changeset in webkit [260228] by Brent Fulgham
  • 7 edits in trunk/Source/WebKit

Add a new 'limitNavigationsToAppBoundDomains' property to WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=210620
<rdar://problem/61903225>

Reviewed by Andy Estes.

Provide a way for Developers to opt-in to AppBound domains through a new WKWebViewConfiguration
property.

This patch only creates the property and exposes the flag to the APIPageConfiguration and
WebPageProxy. A separate patch will take action based on its value.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::limitsNavigationToAppBoundDomains const):
(API::PageConfiguration::setLimitsNavigationToAppBoundDomains):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration limitsNavigationToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationToAppBoundDomains:]):
(-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]): Keep the new property in
sync with this internal flag.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationToAppBoundDomains):

  • UIProcess/WebPageProxy.h:
4:50 PM Changeset in webkit [260227] by svillar@igalia.com
  • 10 edits in trunk/Source

Unreviewed build fix for non unified builds.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp: Added missing includes.

Source/WebCore:

  • html/OffscreenCanvas.cpp: Added missing include.
  • html/canvas/CanvasRenderingContext2DBase.cpp: Ditto.
  • layout/tableformatting/TableFormattingContextGeometry.cpp: Ditto.
  • workers/WorkerAnimationController.cpp:

(WebCore::WorkerAnimationController::requestAnimationFrame): Added namespace.

  • workers/WorkerAnimationController.h: Added missing include.

Source/WebKit:

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp: Added missing include.
4:30 PM Changeset in webkit [260226] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce # of iteration since this test is timed out in slow devices
https://bugs.webkit.org/show_bug.cgi?id=210023

  • stress/map-iteration-oas.js:
4:23 PM Changeset in webkit [260225] by dbates@webkit.org
  • 7 edits in trunk

Remove unused -_focusTextInputContext
https://bugs.webkit.org/show_bug.cgi?id=210619

Reviewed by Darin Adler.

Source/WebKit:

While this function was in the "SPI" header, there is no software at Apple that was using
this funciton and I will assume no non-Apple software was using it either.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _focusTextInputContext:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:

Tools:

Remove test now that the SPI was removed.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[TestWKWebView synchronouslyFocusTextInputContext:]): Deleted.

4:05 PM Changeset in webkit [260224] by Simon Fraser
  • 6 edits
    2 adds in trunk

A slow-starting swipe always latches on the root node
https://bugs.webkit.org/show_bug.cgi?id=210618

Reviewed by Tim Horton.

Source/WebCore:

If the first event in a wheel event gesture had zero delta, scrolling thread logic would
always latch on the root node and the rest of the gesture would scroll the document.

Fix by not latching for events with zero delta.

Test: scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch.html

  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::canScrollWithWheelEvent const):
(WebCore::ScrollingTreeScrollingNode::eventCanScrollContents const):
(WebCore::ScrollingTreeScrollingNode::scrollLimitReached const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::shouldConsiderLatching const): FIXME comment. Ideally this would
check delta() that that's too scarey at the moment.

LayoutTests:

  • scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch-expected.txt: Added.
  • scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch.html: Added.
3:35 PM Changeset in webkit [260223] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[Re-landing] Use more PAC diversity for JIT probe code.
https://bugs.webkit.org/show_bug.cgi?id=210252
<rdar://problem/54490367>

Reviewed by Keith Miller.

Introducing new PtrTags:

JITProbePtrTag - for the client probe function.
JITProbeTrampolinePtrTag - for calling the ctiMasmProbeTrampoline.
JITProbeExecutorPtrTag - for calling the probe executor.

Currently, this is only the Probe::executeProbe().

JITProbeStackInitializationFunctionPtrTag - for calling the optional stack

initialization function that the client probe function may set.

We'll now use these in the JIT probe mechanism instead of adopting the default
CFunctionPtrTag.

Fixed an assert in MacroAssemblerARM64.cpp which does not apply to non ARM64E
builds.

  • assembler/MacroAssembler.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerPrinter.h:

(JSC::MacroAssembler::print):

  • assembler/ProbeContext.h:
  • runtime/JSCPtrTag.h:
  • tools/JSDollarVM.cpp:

(JSC::callWithStackSizeProbeFunction):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):

2:40 PM Changeset in webkit [260222] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Rolling out r259897: Causing crashes on iOS.
https://bugs.webkit.org/show_bug.cgi?id=210252

Not reviewed.

  • assembler/MacroAssembler.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerPrinter.h:

(JSC::MacroAssembler::print):

  • assembler/ProbeContext.h:
  • runtime/JSCPtrTag.h:
  • tools/JSDollarVM.cpp:

(JSC::callWithStackSizeProbeFunction):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):

1:54 PM Changeset in webkit [260221] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Switch unused IOKit classes from allow-with-report to deny-with-report
https://bugs.webkit.org/show_bug.cgi?id=210136
<rdar://problem/61403216>

Reviewed by Per Arne Vollan.

After tracking telemetry for several weeks, we can now safely switch the default state
of a number of IOKit classes from 'allow with telemetry' to 'deny with telemetry'.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:42 PM Changeset in webkit [260220] by ysuzuki@apple.com
  • 1 edit
    8 adds in trunk/Tools

Add slack-aware WKR implementation
https://bugs.webkit.org/show_bug.cgi?id=210425

Reviewed by Alexey Proskuryakov.

This patch adds new WKR implementation, which is posting changes to #changes in WebKit slack.
Currently, we are polling git.webkit.org's feed once a minute. The more efficient way to implement
this bot is introducing post-commit hook, but for now, this polling strategy just works.

  • WKR/.gitignore: Added.
  • WKR/ReadMe.md: Added.
  • WKR/WKR.mjs: Added.
  • WKR/data/.gitignore: Added.
  • WKR/package-lock.json: Added.
  • WKR/package.json: Added.
1:41 PM Changeset in webkit [260219] by Russell Epstein
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260218. rdar://problem/61897737

Fix the iOS build when building without EDITABLE_REGION after r260192
(https://bugs.webkit.org/show_bug.cgi?id=210398)

Have -_mayContainEditableElementsInRect compile-time conditionally call WebKit::mayContainEditableElementsInRect().
If ENABLE(EDITABLE_REGION) is not enabled then return NO.

  • UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _mayContainEditableElementsInRect:]):

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

1:38 PM Changeset in webkit [260218] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix the iOS build when building without EDITABLE_REGION after r260192
(https://bugs.webkit.org/show_bug.cgi?id=210398)

Have -_mayContainEditableElementsInRect compile-time conditionally call WebKit::mayContainEditableElementsInRect().
If ENABLE(EDITABLE_REGION) is not enabled then return NO.

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _mayContainEditableElementsInRect:]):

1:27 PM Changeset in webkit [260217] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build-fix after r260182; guard call to fullscreenManager() for ports which do not
ENABLE(FULLSCREEN_API).

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::updateMediaUsageIfChanged):

1:13 PM Changeset in webkit [260216] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Rollout: [IPC Hardening] MachMessage::create() should use checked arithmetic
<https://webkit.org/b/210572>
<rdar://problem/61729947>

Unreviewed rollout of r260160.

Appears to have caused 8 API test failures on iOS.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):

1:02 PM Changeset in webkit [260215] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r260081) Broke iOS PLT due to InjectedBundle initialization (edit)
https://bugs.webkit.org/show_bug.cgi?id=210582
<rdar://problem/61838584>

Reviewed by Darin Adler.

The changes in r260081 began enforcing NSSecureCoding best practices, triggering
a bug in InjectedBundleMac.mm, which is used by iOS as well.

This patch does the following:

  1. Delays parameter decoding until we use the appropriate InjectedBundle mechanism for expressing the valid classes to use in the Unarchiver.
  2. Removes a temporary workaround needed to get PLT running on iOS again.

This patch also moves the check of the CFBundleGetFunctionPointerForName slightly earlier
so we can use a single function pointer check, and only invoke the parameter decoding
if we are using the C API.

If not, we delay parameter decoding until we have constructed the WKWebProcessPlugIn
object so we can consume it's 'additionalClassesForParameterCoder' before calling
its initialization method.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::decodeBundleParameters): Remove temporary workaround
needed to get PLT working again. Instead of using a debug assert, return as
a decoding failure if the resulting object is not an NSDictionary.
(WebKit::InjectedBundle::initialize): Delay decoding the bundle parameters on
iOS until the Plugin's additionalClassesForParameterCoder method can be called.

12:48 PM Changeset in webkit [260214] by dbates@webkit.org
  • 13 edits in trunk

[iOS] Add a way to focus a text input and place a caret
https://bugs.webkit.org/show_bug.cgi?id=210611
<rdar://problem/61893062>

Reviewed by Darin Adler.

Source/WebKit:

Add some IPI that will be used by code in WebKitAdditions to focus a text input context
and place the caret in it. This will replace the existing -focusTextInput SPI, which I
will remove in a subsequent commit.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _requestTextInputContextsInRect:completionHandler:]): Fix up code style
of signature while I am here.
(-[WKWebView _focusTextInputContext:placeCaretAt:completionHandler:]): Added.

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

(-[WKContentView _isTextInputContextFocused:]): Added.
(-[WKContentView _focusTextInputContext:placeCaretAt:completionHandler:]): Added.
(-[WKContentView _requestTextInputContextsInRect:completionHandler:]): Fix up code style
of signature while I am here.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::focusTextInputContextAndPlaceCaret):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::focusTextInputContext): Use auto now that elementForContext() returns a RefPtr.
(WebKit::WebPage::elementForContext const): Have it return a RefPtr instead of a raw
pointer so callers don't have to remember to take out a ref of otherwise be mindful
of the element's lifetime.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::removeTextPlaceholder): Use auto now that elementForContext() returns a RefPtr.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.
(WebKit::WebPage::focusTextInputContextAndPlaceCaret): Added.

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[TestWKWebView synchronouslyFocusTextInputContext:placeCaretAt:]): Added.
(webViewLoadHTMLStringAndWaitForAllFramesToPaint): Use the bundle's TestWebKitAPI.resources directory
as the base URL so that we have a valid file URL. Some of the tests will then
call -_setAllowUniversalAccessFromFileURLs to allow the main frame access to
the unique-origin child frame contents.
(TEST):

12:44 PM Changeset in webkit [260213] by Russell Epstein
  • 3 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260120. rdar://problem/61899305

Unreviewed, reverting r259891.

Causes significant iOS MotionMark regression

Reverted changeset:

"Switch unused IOKit classes from allow-with-report to deny-
with-report"
https://bugs.webkit.org/show_bug.cgi?id=210136
https://trac.webkit.org/changeset/259891

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

12:31 PM Changeset in webkit [260212] by Russell Epstein
  • 4 edits in branches/safari-610.1.10-branch

Cherry-pick r260193. rdar://problem/61897737

REGRESSION (r259762): Should always hit test for editable elements if the WKWebView is fully editable
https://bugs.webkit.org/show_bug.cgi?id=210558
<rdar://problem/61798347>

Reviewed by Wenson Hsieh.

Source/WebKit:

If the entire WKWebView is marked editable (via SPI -[WKWebView _setEditable]) then
always ask the web process to hit test the page because every element is considered
editable.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _requestTextInputContextsInRect:completionHandler:]):

Tools:

Add a test.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm: (TEST):

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

12:31 PM Changeset in webkit [260211] by Russell Epstein
  • 17 edits in branches/safari-610.1.10-branch

Cherry-pick r260192. rdar://problem/61897737

Move -_requestTextInputContextsInRect to WKContentView to simplify implementation
https://bugs.webkit.org/show_bug.cgi?id=210398
<rdar://problem/61656931>

Reviewed by Darin Adler.

Source/WebKit:

-_requestTextInputContextsInRect is not needed on Mac, but supporting it complicates
its implementation: it has to deal with coordinate space differences due to differences
in what is the root view on Mac and iOS + it has to know about iOS's custom content views.
While this function was in the "SPI" header, there is no software at Apple that was using
these outside of WebKit, and I will assume no non-Apple software was using them either.
Moving this function to WKContentView lets me simplify the implementation.

  • Platform/spi/ios/UIKitSPI.h: Add more forward declarations.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _convertRectFromRootViewCoordinates:]): Deleted. (-[WKWebView _convertRectToRootViewCoordinates:]): Deleted. (-[WKWebView _mayContainEditableElementsInRect:]): Deleted; moved to WKWebViewTestingIOS.mm. (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): Deleted; moved to WKContentViewInteraction.mm.
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _requestTextInputContextsInRect:completionHandler:]): Added. Turns around and calls the function of the same name on the WKContentView. It takes care to convert the specified rect from WKWebView coordinates to WKContentView coordinates and fixes up the bounding rects for the returned contexts to be in WKWebView coordinates. This keeps existings tests passing as mekes using this function intuitive since callers specify and get rects in WKWebView coordinates. (-[WKWebView _requestDocumentContext:completionHandler:]): Added. (-[WKWebView _adjustSelectionWithDelta:completionHandler:]): Added. (-[WKWebView _mayContainEditableElementsInRect:]): Moved from WKWebView.mm.
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _requestTextInputContextsInRect:completionHandler:]): Moved from WKWebView.mm and simplified.

Source/WTF:

Add a convenience function to create an NSArray from a WTF::Vector with a transform function.
The tranform function can either return a RetainPtr or an id.

  • wtf/cocoa/VectorCocoa.h: (WTF::createNSArray): Added.

Tools:

Update test now that -_requestTextInputContextsInRect has moved from WKWebView to WKContentView.
I expose new testing-only WKWebView SPI to access it on the content view.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm: (-[TestWKWebView synchronouslyRequestDocumentContext:]): Added; due to category name change. (-[TestWKWebView synchronouslyAdjustSelectionWithDelta:]): Added; due to category name change.
  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm: (-[WKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted; due to category name change. (-[WKWebView synchronouslyFocusTextInputContext:]): Deleted; due to category name change.
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::mayContainEditableElementsInRect): Convert from content coordinates to WKWebView coordinates now that -_mayContainEditableElementsInRect expects it.

LayoutTests:

Update test and expected results now that UIScriptController.mayContainEditableElementsInRect()
expects the passed rect to be in content coordinates.

I replaced one sub-test of a rect pre-scroll with another that tests the location
of a rect that will have editable elements after scroll. The purpose of that sub-test
hasn't changed, but it now makes the sub-tests' rects symmetric for before and after
scroll. I also added debug() statements to demarcate the before scroll and after scroll
sub-tests in the results to make it easier to understand what this test file is testing.

  • editing/editable-region/hit-test-fixed-expected.txt:
  • editing/editable-region/hit-test-fixed.html:

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

12:31 PM Changeset in webkit [260210] by Russell Epstein
  • 4 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260186. rdar://problem/61897760

REGRESSION (r259898): WebKit-based Books views are all blank
https://bugs.webkit.org/show_bug.cgi?id=210590
<rdar://problem/61791109>

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::enterAcceleratedCompositingWithRootLayer): (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): (WebKit::WebViewImpl::setAcceleratedCompositingRootLayerAfterFlush): Deleted.
  • UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::enterAcceleratedCompositingMode): (WebKit::PageClientImpl::didFirstLayerFlush): The changes to setAcceleratedCompositingRootLayer in r259898 proved to be wrong in a second way (the first being fixed in r260104): when setAcceleratedCompositingRootLayer is called from updateAcceleratedCompositingMode, because the layer hosting mode changed (Books appears to use app-hosted layers), it incorrectly identified the root layer change as a process swap, resulting in the correct layer never being unhidden.

This is enough mistakes that I'm going to try a different approach:
put setAcceleratedCompositingRootLayer back to the way it was before, where
it immediately updates the layer without any smarts, remove
setAcceleratedCompositingRootLayerAfterFlush, because it's no longer necessary,
and add enterAcceleratedCompositingWithRootLayer, which is specifically only
called in the case where DrawingArea will for-sure send us a follow-up
(didFirstLayerFlush) that will unhide the root layer.

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

12:27 PM Changeset in webkit [260209] by Claudio Saavedra
  • 3 edits in trunk/Source/WebCore

[GTK] Deprecation-guards fixes
https://bugs.webkit.org/show_bug.cgi?id=210600

Reviewed by Adrian Perez de Castro.

No new tests needed.

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeGadget::backgroundColor const): Add missing
deprecation guards for deprecated GtkStyleContext API.

  • platform/gtk/ThemeGtk.cpp:

(WebCore::ThemeGtk::ensurePlatformColors const): Switch to WK
deprecation guards from glib ones.

11:59 AM Changeset in webkit [260208] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

11:42 AM Changeset in webkit [260207] by Jack Lee
  • 4 edits
    2 adds in trunk

ASSERTION FAILED: candidate.isCandidate() in WebCore::canonicalizeCandidate
https://bugs.webkit.org/show_bug.cgi?id=130844
<rdar://59535009>

Reviewed by Geoffrey Garen.

Source/WebCore:

Call Position::isCandidate() in PositionIterator::isCandidate so behavior of
candidate search become identical in both classes.

Test: editing/inserting/insert-in-br.html

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate const):

LayoutTests:

  • editing/inserting/insert-in-br-expected.txt: Added.
  • editing/inserting/insert-in-br.html: Added.

Added a regression test for the crash.

  • editing/inserting/insert-list-in-table-cell-07-expected.txt:

Update node tree in expected text file due to behavior change in function
PositionIterator::isCandidate. The visual result remains the same.

11:38 AM Changeset in webkit [260206] by Ryan Haddad
  • 4 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r259621. rdar://problem/59461792

[Cocoa] REGRESSION(r254389): fast/text/international/system-language/declarative-language.html is failing
https://bugs.webkit.org/show_bug.cgi?id=208023
<rdar://problem/59461792>

Reviewed by Simon Fraser.

minimizedLanguagesFromLanguages() is supposed to minimize the language list;
that's its whole raison d'être

  • fast/text/international/system-language/declarative-language-expected.txt:
  • fast/text/international/system-language/declarative-language.html:
  • platform/mac/TestExpectations:

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

11:38 AM Changeset in webkit [260205] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove outdated comment from FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=210607

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-16
Reviewed by Darin Adler.

Remove comment from FrameLoader that is not valid/important anymore because
addExtraFieldsToRequest does not set the Origin header since r259036.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

11:38 AM Changeset in webkit [260204] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r257821. rdar://problem/61408640

REGRESSION(iOS): editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds.html is always timing out
https://bugs.webkit.org/show_bug.cgi?id=208556

Reviewed by Wenson Hsieh.

Wait for the dobule tap delay between the initial tap and the second tap on the editable region
so that the second tap would result in a selection change instead of both taps to be recognized
as a single dobule tap.

  • editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds.html:

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

11:37 AM Changeset in webkit [260203] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Need method for setting selected range from NSRange
https://bugs.webkit.org/show_bug.cgi?id=210593

Reviewed by Darin Adler.

Source/WebCore:

Allow setSelection to work outside of text controls.

Test: accessibility/ios-simulator/non-textcontrol-set-selection.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetSelectedTextRange:]):

LayoutTests:

  • accessibility/ios-simulator/non-textcontrol-set-selection-expected.txt: Added.
  • accessibility/ios-simulator/non-textcontrol-set-selection.html: Added.
11:30 AM Changeset in webkit [260202] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

Clean up VectorCocoa createNSArray overloads and add documentation for createNSArray taking a map function
https://bugs.webkit.org/show_bug.cgi?id=210610

Reviewed by Darin Adler.

Remove unnecessary local variable. Rename "map" type in createNSArray function for clarity
and add documentation for createNSArray function that takes a map function.

I was tempted, but decided not to write the createNSArray function that does not take a
map function in terms of the one that did. With the "right" optimization settings the
compiler should emit the same code, but I didn't verify this. So, I didn't do it.

While I am here, update makeVector() to call shrinkToFit() to reduce the memory footprint
of the returned vector should it end of having less entries, due to filtering, than its
initial capacity.

  • wtf/cocoa/VectorCocoa.h:

(WTF::createNSArray): See above description.
(WTF::makeVector): Shrink to fit before returning the vector. See above for more details.

11:11 AM Changeset in webkit [260201] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Update ScreenTime as playback state changes
https://bugs.webkit.org/show_bug.cgi?id=210518
<rdar://problem/61181092>

Reviewed by Eric Carlson.

Follow up to r260182; Pass a WeakPtr into our task queue in sessionWillEndPlayback rather than a bare pointer.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::sessionWillEndPlayback):

11:06 AM Changeset in webkit [260200] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Use safeRoundPage() instead of round_page() in SharedMemory
https://bugs.webkit.org/show_bug.cgi?id=210608
<rdar://problem/60600443>

Reviewed by Geoffrey Garen.

Use new safeRoundPage() instead of round_page() in SharedMemory, to deal safely with overflows.

  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::SharedMemory::allocate):
(WebKit::makeMemoryEntry):
(WebKit::SharedMemory::~SharedMemory):
(WebKit::SharedMemory::createHandle):

11:04 AM Changeset in webkit [260199] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Captured ThreadedScrollingTree should check its m_scrollingCoordinator before calling its methods
https://bugs.webkit.org/show_bug.cgi?id=210570

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-16
Reviewed by Simon Fraser.

m_scrollingCoordinator may be nullified before asynchronously calling its
method scheduleUpdateScrollPositionAfterAsyncScroll(). Check if it is
not null before calling this method.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

10:44 AM Changeset in webkit [260198] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r259980. rdar://problem/61888315

Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
<https://webkit.org/b/210238>
<rdar://problem/61491575>

Changes based on feedback from Alex Christensen and Darin Adler:

  • Remove WARN_UNUSED_RETURN from methods returning Optional<>.
  • Place WARN_UNUSED_RETURN consistently before the return type.
  • wtf/persistence/PersistentDecoder.h:

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

10:44 AM Changeset in webkit [260197] by Alan Coon
  • 6 edits in branches/safari-609-branch/Source

Cherry-pick r259814. rdar://problem/61888315

WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
<https://webkit.org/b/210238>
<rdar://problem/61491575>

Reviewed by Darin Adler.

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::decodeStorageRecord):
  • Add missing return value check for decode.decode().

Source/WTF:

  • wtf/persistence/PersistentCoders.cpp: (WTF::Persistence::decodeStringText):
  • Add WARN_UNUSED_RETURN.
  • wtf/persistence/PersistentCoders.h: (WTF::Persistence::Coder<Optional<T>>::decode): (WTF::Persistence::Coder<Seconds>::decode): (WTF::Persistence::Coder<WallTime>::decode):
  • Add WARN_UNUSED_RETURN.
  • Add missing return value check for decode.decodeFixedLengthData().
  • wtf/persistence/PersistentDecoder.h: (WTF::Persistence::Decoder::decode): (WTF::Persistence::Decoder::decodeEnum): (WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
  • Add WARN_UNUSED_RETURN.

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

10:39 AM Changeset in webkit [260196] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Crash in IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded when min-size can not be resolved
https://bugs.webkit.org/show_bug.cgi?id=210584
<rdar://problem/56685237>

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Use the initial value of 0 when the min-height can't be resolved.

Test: fast/css-grid-layout/crash-when-min-height-cant-be-resolved.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded const):

LayoutTests:

  • fast/css-grid-layout/crash-when-min-height-cant-be-resolved-expected.txt: Added.
  • fast/css-grid-layout/crash-when-min-height-cant-be-resolved.html: Added.
10:30 AM Changeset in webkit [260195] by Adrian Perez de Castro
  • 15 edits in trunk/Source

Non-unified build fixes mid April 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=210599

Unreviewed build fix.

Source/WebCore:

No new tests needed.

  • bindings/js/JSNavigatorCustom.cpp: Add missing JavaScriptCore/JSCJSValue.h header.

(WebCore::JSNavigator::getUserMedia): Prefix with the JSC:: namespace where needed.

  • dom/ShadowRoot.cpp: Add missing WebAnimation.h header.
  • dom/SimpleRange.cpp: Add missing NodeTraversal.h header.
  • editing/RemoveNodePreservingChildrenCommand.cpp: Add missing Editing.h header.
  • page/MemoryRelease.cpp: Add missing JavaScriptCore/VM.h header.
  • page/PageConfiguration.cpp: Add missing UserContentURLPattern.h header.
  • page/scrolling/ScrollingTree.h: Add missing EventTrackingRegions.h header.
  • page/scrolling/ScrollingTreeLatchingController.cpp: Add missing Logging.h header.
  • page/scrolling/ScrollingTreeLatchingController.h: Add missing ScrollTypes.h header,

and forward declaration for WebCore::PlatformWheelEvent.

  • workers/service/server/SWServerJobQueue.cpp: Add missing Logging.h header.

Source/WebKit:

  • UIProcess/DeviceIdHashSaltStorage.cpp: Add missing Logging.h header.
  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSetForcedAppearance): Add missing WebCore:: namespace
prefix.

  • UIProcess/linux/MemoryPressureMonitor.h: Add missing wtf/text/CString.h header.
9:59 AM Changeset in webkit [260194] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm

Unreviewed build fix. rdar://problem/61853298

Attempted resolution of: use of undeclared identifier 'isInBounds'; did you mean 'WTF::isInBounds'?

9:52 AM Changeset in webkit [260193] by dbates@webkit.org
  • 4 edits in trunk

REGRESSION (r259762): Should always hit test for editable elements if the WKWebView is fully editable
https://bugs.webkit.org/show_bug.cgi?id=210558
<rdar://problem/61798347>

Reviewed by Wenson Hsieh.

Source/WebKit:

If the entire WKWebView is marked editable (via SPI -[WKWebView _setEditable]) then
always ask the web process to hit test the page because every element is considered
editable.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _requestTextInputContextsInRect:completionHandler:]):

Tools:

Add a test.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TEST):

9:47 AM Changeset in webkit [260192] by dbates@webkit.org
  • 17 edits in trunk

Move -_requestTextInputContextsInRect to WKContentView to simplify implementation
https://bugs.webkit.org/show_bug.cgi?id=210398
<rdar://problem/61656931>

Reviewed by Darin Adler.

Source/WebKit:

-_requestTextInputContextsInRect is not needed on Mac, but supporting it complicates
its implementation: it has to deal with coordinate space differences due to differences
in what is the root view on Mac and iOS + it has to know about iOS's custom content views.
While this function was in the "SPI" header, there is no software at Apple that was using
these outside of WebKit, and I will assume no non-Apple software was using them either.
Moving this function to WKContentView lets me simplify the implementation.

  • Platform/spi/ios/UIKitSPI.h: Add more forward declarations.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _convertRectFromRootViewCoordinates:]): Deleted.
(-[WKWebView _convertRectToRootViewCoordinates:]): Deleted.
(-[WKWebView _mayContainEditableElementsInRect:]): Deleted; moved to WKWebViewTestingIOS.mm.
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]): Deleted; moved to WKContentViewInteraction.mm.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _requestTextInputContextsInRect:completionHandler:]): Added. Turns around and
calls the function of the same name on the WKContentView. It takes care to convert the specified
rect from WKWebView coordinates to WKContentView coordinates and fixes up the bounding rects
for the returned contexts to be in WKWebView coordinates. This keeps existings tests passing
as mekes using this function intuitive since callers specify and get rects in WKWebView coordinates.
(-[WKWebView _requestDocumentContext:completionHandler:]): Added.
(-[WKWebView _adjustSelectionWithDelta:completionHandler:]): Added.
(-[WKWebView _mayContainEditableElementsInRect:]): Moved from WKWebView.mm.

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

(-[WKContentView _requestTextInputContextsInRect:completionHandler:]): Moved from WKWebView.mm and simplified.

Source/WTF:

Add a convenience function to create an NSArray from a WTF::Vector with a transform function.
The tranform function can either return a RetainPtr or an id.

  • wtf/cocoa/VectorCocoa.h:

(WTF::createNSArray): Added.

Tools:

Update test now that -_requestTextInputContextsInRect has moved from WKWebView to WKContentView.
I expose new testing-only WKWebView SPI to access it on the content view.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(-[TestWKWebView synchronouslyRequestDocumentContext:]): Added; due to category name change.
(-[TestWKWebView synchronouslyAdjustSelectionWithDelta:]): Added; due to category name change.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[WKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted; due to category name change.
(-[WKWebView synchronouslyFocusTextInputContext:]): Deleted; due to category name change.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::mayContainEditableElementsInRect): Convert from content coordinates
to WKWebView coordinates now that -_mayContainEditableElementsInRect expects it.

LayoutTests:

Update test and expected results now that UIScriptController.mayContainEditableElementsInRect()
expects the passed rect to be in content coordinates.

I replaced one sub-test of a rect pre-scroll with another that tests the location
of a rect that will have editable elements after scroll. The purpose of that sub-test
hasn't changed, but it now makes the sub-tests' rects symmetric for before and after
scroll. I also added debug() statements to demarcate the before scroll and after scroll
sub-tests in the results to make it easier to understand what this test file is testing.

  • editing/editable-region/hit-test-fixed-expected.txt:
  • editing/editable-region/hit-test-fixed.html:
9:25 AM Changeset in webkit [260191] by ddkilzer@apple.com
  • 13 edits
    1 copy in trunk/Source/WebKit

[IPC Hardening] Use ObjectIdentifier<> for LegacyCustomProtocol
<https://webkit.org/b/210580>
<rdar://problem/61791686>

Reviewed by Chris Dumez.

Replace uses of uint64_t with LegacyCustomProtocolID.

  • NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:

(WebKit::LegacyCustomProtocolManager::didFailWithError):
(WebKit::LegacyCustomProtocolManager::didLoadData):
(WebKit::LegacyCustomProtocolManager::didReceiveResponse):
(WebKit::LegacyCustomProtocolManager::didFinishLoading):
(WebKit::LegacyCustomProtocolManager::wasRedirectedToRequest):
(WebKit::LegacyCustomProtocolManager::protocolForID):

  • NetworkProcess/CustomProtocols/LegacyCustomProtocolID.h: Add.
  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp:

(WebKit::LegacyCustomProtocolManager::addCustomProtocol):
(WebKit::LegacyCustomProtocolManager::removeCustomProtocol):
(WebKit::LegacyCustomProtocolManager::startLoading):
(WebKit::LegacyCustomProtocolManager::stopLoading):
(WebKit::generateCustomProtocolID): Delete.

  • Replace with LegacyCustomProtocolID::generate().
  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in:
  • Scripts/webkit/messages.py:
  • UIProcess/API/APICustomProtocolManagerClient.h:

(API::CustomProtocolManagerClient::startLoading):
(API::CustomProtocolManagerClient::stopLoading):

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

(-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
(WebKit::LegacyCustomProtocolManagerClient::startLoading):
(WebKit::LegacyCustomProtocolManagerClient::stopLoading):

  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.cpp:

(WebKit::LegacyCustomProtocolManagerProxy::startLoading):
(WebKit::LegacyCustomProtocolManagerProxy::stopLoading):
(WebKit::LegacyCustomProtocolManagerProxy::wasRedirectedToRequest):
(WebKit::LegacyCustomProtocolManagerProxy::didReceiveResponse):
(WebKit::LegacyCustomProtocolManagerProxy::didLoadData):
(WebKit::LegacyCustomProtocolManagerProxy::didFailWithError):
(WebKit::LegacyCustomProtocolManagerProxy::didFinishLoading):

  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
  • Remove unused typedef and instance variable.
  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • Add LegacyCustomProtocolID.h to project.
8:55 AM Changeset in webkit [260190] by Simon Fraser
  • 16 edits
    6 adds in trunk

[Async overflow scrolling] Slow-repaint overflow scroll have force their enclosing scrollers to be slow too
https://bugs.webkit.org/show_bug.cgi?id=210591

Reviewed by Antti Koivisto.

Source/WebCore:

If an overflow:scroll has background-attachment:fixed in the contents, then both it and all its containing-block
scrolling ancestors have to be slow-scrolling too, because scrolling any of them affects the local geometry
of the fixed backgrounds which paint on scroll.

Implement this by having the scrolling tree do a post-commit pass over the nodes with sync scrolling reasons
(which we collect during the commit phase). For each slow-scrolling node, walk its ancestor chain (via
proxy nodes when necessary) and mark the scrolling node ancestors with the "DescendantScrollersHaveSynchronousScrolling"
reason.

For testing, expose internals.scrollingTreeAsText(), which needs a bit of synchronization via
waitForScrollingTreeCommit() since the commit happens on the scrolling thread.

Tests: scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow.html

scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2.html

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText const):
(WebCore::AsyncScrollingCoordinator::scrollingTreeAsText const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::scrollingStateTreeAsText const):
(WebCore::ScrollingCoordinator::scrollingTreeAsText const):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNodeRecursive):
(WebCore::ScrollingTree::propagateSynchronousScrollingReasons):
(WebCore::ScrollingTree::updateTreeFromStateNode): Deleted.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::waitForScrollingTreeCommit):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::waitForScrollingTreeCommit):

  • page/scrolling/ThreadedScrollingTree.h:
  • testing/Internals.cpp:

(WebCore::Internals::scrollingTreeAsText const):

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

LayoutTests:

  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2.html: Added.
8:52 AM Changeset in webkit [260189] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mac wk2 Debug ] media/modern-media-controls/media-controller/media-controller-auto-hide.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=210349
<rdar://problem/61594098>

Reviewed by Eric Carlson.

This test had several things wrong about it. First, it manually created a MediaController in the test page and set a custom auto-hide delay on it.
However, it would test the proper behavior of the auto-hide behavior on the MediaController created by the media element, querying the state of
the media controls markup within that media element's shadow root. In that world, the auto-hide delay was the default delay, and not the custom
one set on the page-created MediaController.

The cause of the timeout was that the media clip used in this test is barely longer than the auto-hide delay, and it could happen that under slow
conditions, the media would end and the auto-hide timer would never have a chance to fire since it would be canceled due to auto-hide being disabled
when the media is not playing, such as when it ended.

We make this test saner and more realistic by not customizing the auto-hide delay, removing the page MediaController and simply setting "loop" on the
media element such that it never stops playing, givin the auto-hide timer additional time to fire with no risk of it being canceled by the media ending.

  • media/modern-media-controls/media-controller/media-controller-auto-hide.html:
  • platform/mac-wk2/TestExpectations:
8:45 AM Changeset in webkit [260188] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.9.4

Tag Safari-610.1.9.4.

8:34 AM Changeset in webkit [260187] by Kocsen Chung
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

8:33 AM Changeset in webkit [260186] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION (r259898): WebKit-based Books views are all blank
https://bugs.webkit.org/show_bug.cgi?id=210590
<rdar://problem/61791109>

Reviewed by Chris Dumez.

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

(WebKit::WebViewImpl::enterAcceleratedCompositingWithRootLayer):
(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer):
(WebKit::WebViewImpl::setAcceleratedCompositingRootLayerAfterFlush): Deleted.

  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode):
(WebKit::PageClientImpl::didFirstLayerFlush):
The changes to setAcceleratedCompositingRootLayer in r259898 proved
to be wrong in a second way (the first being fixed in r260104): when
setAcceleratedCompositingRootLayer is called from updateAcceleratedCompositingMode,
because the layer hosting mode changed (Books appears to use app-hosted layers),
it incorrectly identified the root layer change as a process swap, resulting
in the correct layer never being unhidden.

This is enough mistakes that I'm going to try a different approach:
put setAcceleratedCompositingRootLayer back to the way it was before, where
it immediately updates the layer without any smarts, remove
setAcceleratedCompositingRootLayerAfterFlush, because it's no longer necessary,
and add enterAcceleratedCompositingWithRootLayer, which is specifically only
called in the case where DrawingArea will for-sure send us a follow-up
(didFirstLayerFlush) that will unhide the root layer.

7:55 AM Changeset in webkit [260185] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, GTK clean build fix after r260132.

  • TestWebKitAPI/gtk/main.cpp:

(main): Don't use GtkVersioning here. A dependency on the WebCore
private headers for this single file is overkill.

7:25 AM Changeset in webkit [260184] by Claudio Saavedra
  • 3 edits in trunk/Source/WebCore

Clean a couple of unused-parameters warnings
https://bugs.webkit.org/show_bug.cgi?id=210596

Unreviewed.

No new tests needed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const): Remove
a spurious UNUSED_PARAM() for an actually used parameter.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateSecurityDiscCharacters):

7:07 AM Changeset in webkit [260183] by Diego Pino Garcia
  • 2 edits
    1 delete in trunk/LayoutTests

[GTK] Gardening, mark several animations test as failure
https://bugs.webkit.org/show_bug.cgi?id=210602

Unreviewed gardening.

For some reason these baselines are not making the tests pass in
the EWS GTK-WK2 bot, so I'm removing these GTK baselines added in
r260155 and mark the tests as failing instead.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt: Removed.
6:36 AM Changeset in webkit [260182] by eric.carlson@apple.com
  • 42 edits
    9 adds in trunk

[macOS] Update ScreenTime as playback state changes
https://bugs.webkit.org/show_bug.cgi?id=210518
<rdar://problem/61181092>

Reviewed by Jer Noble.
Source/WebCore:

Test: media/media-usage-state.html

Pass media element state to the UI process whenever it changes.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::~MediaElementSession):
(WebCore::MediaElementSession::updateMediaUsageIfChanged):

  • html/MediaElementSession.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::addMediaUsageManagerSession):
(WebCore::ChromeClient::updateMediaUsageManagerSessionState):
(WebCore::ChromeClient::removeMediaUsageManagerSession):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::PlatformMediaSession):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::updateMediaUsageIfChanged):
(WebCore::PlatformMediaSession::mediaSessionIdentifier const):

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary):

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::scheduleUpdateSessionStatus):
(WebCore::PlatformMediaSessionManager::sessionDidEndRemoteScrubbing):
(WebCore::PlatformMediaSessionManager::scheduleUpdateNowPlayingInfo): Deleted.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::scheduleUpdateSessionStatus):
(WebCore::MediaSessionManagerCocoa::sessionWillBeginPlayback):
(WebCore::MediaSessionManagerCocoa::sessionDidEndRemoteScrubbing):
(WebCore::MediaSessionManagerCocoa::removeSession):
(WebCore::MediaSessionManagerCocoa::sessionWillEndPlayback):
(WebCore::MediaSessionManagerCocoa::clientCharacteristicsChanged):
(WebCore::MediaSessionManagerCocoa::sessionCanProduceAudioChanged):
(WebCore::MediaSessionManagerCocoa::scheduleUpdateNowPlayingInfo): Deleted.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::resetRestrictions):
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):

  • platform/graphics/MediaUsageInfo.h: Added.

(WebCore::MediaUsageInfo::operator== const):
(WebCore::MediaUsageInfo::operator!= const):
(WebCore::MediaUsageInfo::encode const):
(WebCore::MediaUsageInfo::decode):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementRestrictions):
(WebCore::Internals::mediaUsageState const):

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

Source/WebCore/PAL:

Soft link the UsageTracking framework.

  • PAL.xcodeproj/project.pbxproj:
  • pal/cocoa/UsageTrackingSoftLink.h: Added.
  • pal/cocoa/UsageTrackingSoftLink.mm: Added.

Source/WebKit:

Add a manager that gets media element state changes, and a Cocoa-specific
implementation that passes that state to ScreenTime.

  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::mediaUsageManager):
(WebKit::WebPageProxy::addMediaUsageManagerSession):
(WebKit::WebPageProxy::updateMediaUsageManagerSessionState):
(WebKit::WebPageProxy::removeMediaUsageManagerSession):

  • UIProcess/Media/MediaUsageManager.cpp: Added.

(WebKit::MediaUsageManager::create):
(WebKit::reset):
(WebKit::MediaUsageManager::addMediaSession):
(WebKit::MediaUsageManager::removeMediaSession):
(WebKit::MediaUsageManager::updateMediaUsage):

  • UIProcess/Media/MediaUsageManager.h: Added.
  • UIProcess/Media/cocoa/MediaUsageManagerCocoa.h: Added.

(WebKit::MediaUsageManagerCocoa::SessionMediaUsage::SessionMediaUsage):

  • UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm: Added.

(WebKit::usageTrackingAvailable):
(WebKit::MediaUsageManager::create):
(WebKit::MediaUsageManagerCocoa::~MediaUsageManagerCocoa):
(WebKit::MediaUsageManagerCocoa::reset):
(WebKit::MediaUsageManagerCocoa::addMediaSession):
(WebKit::MediaUsageManagerCocoa::removeMediaSession):
(WebKit::MediaUsageManagerCocoa::updateMediaUsage):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::addMediaUsageManagerSession):
(WebKit::WebChromeClient::updateMediaUsageManagerSessionState):
(WebKit::WebChromeClient::removeMediaUsageManagerSession):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addMediaUsageManagerSession):
(WebKit::WebPage::updateMediaUsageManagerSessionState):
(WebKit::WebPage::removeMediaUsageManagerSession):

  • WebProcess/WebPage/WebPage.h:

Source/WTF:

Define HAVE_MEDIA_USAGE_FRAMEWORK and ENABLE_MEDIA_USAGE

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:

LayoutTests:

  • media/media-usage-state-expected.txt: Added.
  • media/media-usage-state.html: Added.
  • platform/gtk/TestExpectations: Skip new test.
  • platform/win/TestExpectations: Ditto.
  • platform/wpe/TestExpectations: Ditto.
6:07 AM Changeset in webkit [260181] by ysuzuki@apple.com
  • 54 edits
    14 adds in trunk

[JSC] Implement JSMapIterator/JSSetIterator with JSInternalFieldObjectImpl
https://bugs.webkit.org/show_bug.cgi?id=210023

Reviewed by Keith Miller.

JSTests:

  • stress/map-iteration-oas.js: Added.

(shouldBe):
(test):

  • stress/map-iterator-creation-fail-dfg.js: Added.

(shouldThrow):
(test2):
(test3):

  • stress/map-iterator-creation-fail.js: Added.

(shouldThrow):
(i.shouldThrow):
(test2):
(test3):

  • stress/set-iteration-oas.js: Added.

(shouldBe):

  • stress/set-iterator-creation-fail-dfg.js: Added.

(shouldThrow):
(set shouldThrow):

  • stress/set-iterator-creation-fail.js: Added.

(shouldThrow):
(i.shouldThrow):
(test2):
(test3):

Source/JavaScriptCore:

This patch reimplement JSMapIterator/JSSetIterator with JSInternalFieldObjectImpl.
This makes current JSFinalObject-based Map/SetIterator simple and small.
We generalize NewArrayIterator/PhantomNewArrayIterator to convert them to NewInternalFieldObject/PhantomNewInternalFieldObject
to support JSMapIterator/JSSetIterator too in DFG / FTL. This makes allocation efficient and object-allocation-sinking aware.

  • builtins/BuiltinNames.h:
  • builtins/MapIteratorPrototype.js:

(globalPrivate.mapIteratorNext):
(next):

  • builtins/MapPrototype.js:

(globalPrivate.MapIterator): Deleted.
(values): Deleted.
(keys): Deleted.
(entries): Deleted.

  • builtins/SetIteratorPrototype.js:

(globalPrivate.setIteratorNext):
(next):

  • builtins/SetPrototype.js:

(globalPrivate.SetIterator): Deleted.
(values): Deleted.
(entries): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsMapIterator):
(JSC::BytecodeGenerator::emitIsSetIterator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::mapIteratorInternalFieldIndex):
(JSC::setIteratorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getMapIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getSetIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putMapIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putSetIteratorInternalField):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPhantomNewInternalFieldObject):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::isPhantomAllocation):
(JSC::DFG::Node::convertToPhantomNewArrayIterator): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObjectImpl):
(JSC::DFG::SpeculativeJIT::compileNewGenerator):
(JSC::DFG::SpeculativeJIT::compileNewAsyncGenerator):
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
(JSC::DFG::SpeculativeJIT::compileNewArrayIterator): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObjectImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileNewGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileNewAsyncGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayIterator): Deleted.

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::cloneMapIteratorObject):
(Inspector::cloneSetIteratorObject):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSArrayIterator.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::mapIteratorPrototype const):
(JSC::JSGlobalObject::setIteratorPrototype const):
(JSC::JSGlobalObject::mapIteratorStructure const):
(JSC::JSGlobalObject::setIteratorStructure const):

  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::createWithInitialValues):
(JSC::JSMapIterator::finishCreation):
(JSC::JSMapIterator::visitChildren):

  • runtime/JSMapIterator.h:
  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::createWithInitialValues):
(JSC::JSSetIterator::finishCreation):
(JSC::JSSetIterator::visitChildren):

  • runtime/JSSetIterator.h:
  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):
(JSC::createMapIteratorObject):
(JSC::mapProtoFuncValues):
(JSC::mapProtoFuncKeys):
(JSC::mapProtoFuncEntries):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):
(JSC::createSetIteratorObject):
(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):

  • runtime/VM.cpp:

(JSC::VM::setIteratorStructureSlow): Deleted.
(JSC::VM::mapIteratorStructureSlow): Deleted.

  • runtime/VM.h:

(JSC::VM::setIteratorStructure): Deleted.
(JSC::VM::mapIteratorStructure): Deleted.

Source/WebCore:

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

5:06 AM Changeset in webkit [260180] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use ensureStillAliveHere in FTL when content of storage should be kept alive
https://bugs.webkit.org/show_bug.cgi?id=210583
<rdar://problem/61831515>

Reviewed by Mark Lam.

The content of Butterfly / ArrayStorage is kept alive only when the owner JSCell is alive.
This means that we should keep the owner JSCell alive if we are loading content of storage
which includes JSCells. This patch inserts ensureStillAliveHere in FTL to ensure this invariant.

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::~JITCode): Found that we get crash with dumpDisassembly if FTL::JITCode is destroyed while it fails to generate code while testing this.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):

4:46 AM WebKitGTK/2.28.x edited by berto@igalia.com
(diff)
4:46 AM WebKitGTK/2.28.x edited by berto@igalia.com
(diff)
4:45 AM Changeset in webkit [260179] by berto@igalia.com
  • 2 edits in trunk/Source/WTF

Unreviewed, set CeilingOnPageSize for MIPS64

This fixes a build failure ("Must set CeilingOnPageSize in
PageBlock.h").

  • wtf/PageBlock.h:
4:43 AM Changeset in webkit [260178] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix GStreamer build warnings.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceDetached):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleErrorConditionFromStreamingThread):

4:39 AM Changeset in webkit [260177] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WebKit

[IPC hardening] DrawingArea::updateBackingStoreState() is not used on Apple platforms
<https://webkit.org/b/210585>
<rdar://problem/61802011>

Reviewed by Geoffrey Garen.

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/DrawingAreaProxy.messages.in:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::updateBackingStoreState):

  • WebProcess/WebPage/DrawingArea.messages.in:
Use USE(COORDINATED_GRAPHICS)
USE(TEXTURE_MAPPER) to

protect code not used on Apple platforms.

4:22 AM Changeset in webkit [260176] by clopez@igalia.com
  • 7 edits in trunk

[GTK] MiniBrowser opens new windows too small causing failures on some WPT tests
https://bugs.webkit.org/show_bug.cgi?id=210206

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Some WPT tests (when executed with the WPT runner via WebDriver)
open new browser windows via JavaScript invoking Window.open()
and then run the test on this new window.
The size of the new window is not specified, and we were failing
to provide a default window size, so it was using the minimum of
100x100 which its just too small for some test that later call
document.elementFromPoint() on some coordinates
that are outside of that size.

To fix that provide the size of the default GTK window to WebCore
if the application sets one via gtk_window_set_default_size().
And if not, then use the size of the previous window.

Also change the way we position the new window to work better when
the system uses more than one monitor. Previously to get the default
coordinates of the new window we were using gdk_display_get_monitor()
with just the first monitor available.
This causes issues in the calculation of the available space when
using several monitors. Instead get the monitor in use by looking
at the current GDK root window.

Tests: TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-default-size
and TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-no-default-size

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::getCurrentScreenMonitor):
(WebCore::screenRect):
(WebCore::screenAvailableRect):

Source/WebKit:

Provide the size of the default window (if is set) when windowRect is called
before the window is shown.

  • UIProcess/API/glib/WebKitUIClient.cpp:

Tools:

Add two API test to check that window.open() by default gets a size
request equal to the old window if there is no default window size,
or to the default window if there is a default window size.

A new function helper setCreateNewWebViewsInWindowsWithDefaultSize()
its added to create new webviews in new windows automatically, which
its needed to test the case of having a default window size.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewWindowProperties):
(testWebViewOpenWindowDefaultSize):
(testWebViewOpenWindowNoDefaultSize):
(beforeAll):

2:19 AM Changeset in webkit [260175] by Carlos Garcia Campos
  • 2 edits in trunk

[GTK4] Disable netscape plugins API
https://bugs.webkit.org/show_bug.cgi?id=210552

Reviewed by Adrian Perez de Castro.

Because GTK4 is the future and NPAPI plugins the past.

  • Source/cmake/OptionsGTK.cmake:
12:11 AM Changeset in webkit [260174] by commit-queue@webkit.org
  • 8 edits in trunk/Source

TextureMapper renders video element with "object-fit: cover" incorrectly
https://bugs.webkit.org/show_bug.cgi?id=210544

Patch by Tomoki Imai <Tomoki Imai> on 2020-04-16
Reviewed by Žan Doberšek.

Propagate GraphicsLayer::contentsClippingRect information to TextureMapperLayer
to properly clip the outside of DOM element when the element has "object-fit: cover".

Unfortunately, the test is disabled on WebKitGTK due to bug 177536, bug 163528.
Test: compositing/video/video-object-fit.html

Source/WebCore:

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf): Clip using propagated contentsClippingRect when rendering m_contentsLayer.
(WebCore::TextureMapperLayer::setContentsClippingRect):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsClippingRect):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState):

Apr 15, 2020:

10:57 PM Changeset in webkit [260173] by mmaxfield@apple.com
  • 11 edits
    8 adds in trunk

[Cocoa] Password obscuring dots drawn with the system font are too small
https://bugs.webkit.org/show_bug.cgi?id=209692
<rdar://problem/60788385>

Reviewed by Darin Adler.

Source/WebCore:

The system font's U+2022 BULLET glyph got smaller. Instead, we should match
the native platform's behavior of using U+F79A. However, U+F79A is a PUA
character, meaning different fonts will draw it in arbitrary different ways.
Therefore, we should only use this character if we're drawing it with the
system font. Otherwise, we can take the old codepath and use U+2022 BULLET.

Tests: fast/text/text-security-disc-bullet-pua.html

platform/mac/fast/text/text-security-disc-bullet-pua-mac.html
platform/ios/fast/text/text-security-disc-bullet-pua-ios-new.html
platform/ios/fast/text/text-security-disc-bullet-pua-ios-old.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::text const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::constructTextRun):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

  • rendering/SimpleLineLayoutCoverage.cpp:

(WebCore::SimpleLineLayout::printReason):

  • rendering/SimpleLineLayoutCoverage.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computeTextSecurityDiscShouldUsePUACodePoint const):

  • rendering/style/RenderStyle.h:

LayoutTests:

  • fast/text/text-security-disc-bullet-pua-expected.html: Added.
  • fast/text/text-security-disc-bullet-pua.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-new-expected.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-new.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-old-expected.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-old.html: Added.
  • platform/mac/fast/text/text-security-disc-bullet-pua-mac-expected.html: Added.
  • platform/mac/fast/text/text-security-disc-bullet-pua-mac.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:53 PM Changeset in webkit [260172] by jer.noble@apple.com
  • 7 edits in trunk/Source

REGRESSION (r260102): ASSERTION FAILED: m_arbitrators.contains(proxy) in WebKit::SharedArbitrator::endRoutingArbitrationForArbitrator
https://bugs.webkit.org/show_bug.cgi?id=210589
<rdar://problem/61844208>

Reviewed by Eric Carlson.

Source/WebCore:

Track whether the session successfully entered routing arbitration and only call
leaveRoutingAbritration() if entering was sucessful.

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::setCategory):

Source/WebKit:

Protect against an assertion in the SharedArbitrator in case where a WebProcess is terminated before it can call
endRoutingArbitration().

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp:

(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::isInRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::endRoutingArbitrationForArbitrator):
(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

10:22 PM Changeset in webkit [260171] by Simon Fraser
  • 7 edits
    7 adds in trunk

[Async overflow scroll] background-attachment:fixed needs to disable async overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=210581

Reviewed by Zalan Bujtas.

Source/WebCore:

Start setting synchronousScrollingReasons on overflow scrolling nodes if the scrolling would move content
that has background-attachment:fixed (we can't use async scrolling there, because such content needs painting
on each scroll).

When style changes, we call FrameView::{add|remove}SlowRepaintObject(). That sets the "needsScrollingTreeUpdate"
compositing bit on the enclosing RenderLayer (note, any RenderLayer, not necessarily a scrolling one).
Setting that bit will ensure that RenderLayerCompositor does an "update backing and hierarchy" traversal,
and during this traversal, if we see a layer with the bit set, scrollingTreeState.needSynchronousScrollingReasonsUpdate
becomes true. At the end of the traversal this is used as a signal to call updateSynchronousScrollingNodes().

updateSynchronousScrollingNodes() needs to clear synchronousScrollingReasons on nodes that no longer need
to slow-scroll, and set it on those that do. To achieve this we use the set of slow-repaint renders from
FrameView, and the set of layers with scrolling nodes from RenderLayerCompositor, starting with the set of
all nodes, and pruning those known to be slow. synchronousScrollingReasons are cleared on the remainder.

Tests: scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic.html

scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow.html

  • page/FrameView.cpp:

(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject):

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow.html: Added.
9:34 PM Changeset in webkit [260170] by timothy_horton@apple.com
  • 8 edits in trunk

REGRESSION (r258337): Crash when right clicking on link that uses the system UI font with optimizeLegibility on Mojave
https://bugs.webkit.org/show_bug.cgi?id=210575
<rdar://problem/61646717>

Reviewed by Darin Adler.

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingFontAttributeNormalizer archiver:willEncodeObject:]):
(IPC::encodeSecureCodingInternal):
The workaround introduced in r250640 and r251086 for archiving NSFonts
with optical sizing attributes is still incomplete, which was recently
revealed by making decoding failures more apparent (in r258337).

Specifically, the workaround was not applied to fonts encoded inside
NSAttributedStrings, which are encoded using a keyed archiver... only
to fonts encoded directly with CoreIPC.

Use a NSKeyedArchiver delegate to apply our fix-up to the optical sizing
attribute when any NSFont is being encoded, and only on platforms
that still exhibit the bug.

  • Shared/Cocoa/CoreTextHelpers.h:
  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):
(WebKit::fontDescriptorWithFontAttributes): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):
Refactor fontDescriptorWithFontAttributes to just return a font since that's what all callers actually want.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:

(TEST):
Add an API test ensuring that we can encode and decode a NSAttributedString
that includes a system-ui font with optimizeLegibility on.

8:38 PM Changeset in webkit [260169] by wilander@apple.com
  • 21 edits
    4 adds in trunk

Add SPI to configure WebsiteDataStores with a URL for standalone web applications and use it to disable first-party website data removal in ITP
https://bugs.webkit.org/show_bug.cgi?id=209634
<rdar://problem/60943970>

Reviewed by Alex Christensen.

Source/WebKit:

This change adds a new property to _WKWebsiteDataStoreConfiguration.h called
standaloneApplicationURL with which the hosting application can inform the
website data store that it's running as a standalone web application.

This change also forwards an existing standaloneApplicationURL as a
WebCore::RegistrableDomain into ITP so that explicit exemptions can be made
to first parties of standalone web applications. The exemptions made here
all for all of ITP's website data removal. This part of the change is
covered by the new layout tests.

Tests: http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html

http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::setStandaloneApplicationDomain):
(WebKit::ResourceLoadStatisticsStore::standaloneApplicationDomain const):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setStandaloneApplicationDomain):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::forwardResourceLoadStatisticsSettings):

  • NetworkProcess/NetworkSession.h:
  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration standaloneApplicationURL]):
(-[_WKWebsiteDataStoreConfiguration setStandaloneApplication:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::standaloneApplicationURL const):
(WebKit::WebsiteDataStoreConfiguration::setStandaloneApplicationURL):

Tools:

Added a new test option called standaloneWebApplicationURL so that layout tests can
configure the website data store accordingly. Picking it up and using it requires
creating a new website data store with a configuration that has the standalone web
application URL.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
(WTR::TestController::defaultWebsiteDataStore):
(WTR::parseStringTestHeaderValueAsURL):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html: Added.
7:19 PM Changeset in webkit [260168] by Andres Gonzalez
  • 6 edits
    2 adds in trunk/Source/WebCore

Add logging to core accessibility.
https://bugs.webkit.org/show_bug.cgi?id=210564

Reviewed by Chris Fleizach.

Added AXLogger class and AXTRACE macro. Used them in AXIsolatedTree.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXLogger.cpp: Added.

(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::~AXLogger):

  • accessibility/AXLogger.h: Added.
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::AXIsolatedTree):
(WebCore::AXIsolatedTree::~AXIsolatedTree):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::nodeInTreeForID):
(WebCore::AXIsolatedTree::treeForID):
(WebCore::AXIsolatedTree::createTreeForPageID):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::treeForPageID):
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::objectsForIDs const):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateSubtree):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedUIElement):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setRootNode):
(WebCore::AXIsolatedTree::setFocusedNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • platform/Logging.h:
7:18 PM Changeset in webkit [260167] by Chris Dumez
  • 6 edits in trunk

[IPC Hardening] MachMessage::messageSize() should use checked arithmetic
https://bugs.webkit.org/show_bug.cgi?id=210567
<rdar://problem/61734355>

Source/WebKit:

Reviewed by Geoffrey Garen.

Replace call to round_msg() call with a call to our new safeRoundMsg() which does
the same alignment up but using checked arithmetic to protect against overflows.

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::safeRoundMsg):
(IPC::MachMessage::messageSize):

Source/WTF:

Reviewed by Geoffrey Garen.

Add operator / to CheckedArithmetic for convenience.

  • wtf/CheckedArithmetic.h:

(WTF::safeDivide):
(WTF::Checked::operator/=):
(WTF::operator/):

Tools:

Reviewed by Geoff Garen.

Add API test coverage for / operator in Checked.

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::TEST):

6:45 PM Changeset in webkit [260166] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Disable Store-load pair auto-vectorization for JSC
https://bugs.webkit.org/show_bug.cgi?id=210574

Reviewed by Geoffrey Garen.

slp-vectorization appears to make our slow path code significantly
slower. That's because when we materialize our constant bytecode
structs into C++ we load all the fields at the same time then
widen them to the struct's member C++ size. Since we have 3
different possible sizes Clang generates a total mess of
code. Disabling this does not appear to be a regression on any
platform I tested and improves the performance of slow path code
significantly in micro benchmarks.

  • CMakeLists.txt:
  • Configurations/JavaScriptCore.xcconfig:
6:40 PM Changeset in webkit [260165] by rmorisset@apple.com
  • 5 edits in trunk/Source

Flaky Test: fetch/fetch-worker-crash.html
https://bugs.webkit.org/show_bug.cgi?id=187257
<rdar://problem/48527526>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

The crash is coming from setExceptionPorts which is inlined in WTF::registerThreadForMachExceptionHandling.
From the error message we know that the problem is an "invalid port right".
http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_set_exception_ports.html tells us that the "port right" is the third parameter to thread_set_exception_ports, which is exceptionPort in our case.
exceptionPort is a global variable defined at the top of Signals.cpp:

static mach_port_t exceptionPort;

It is set in exactly one place:

kern_return_t kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &exceptionPort);

in a std::call_once, in startMachExceptionHandlerThread().
Note that startMachExceptionHandlerThread() is called from the main thread just before the point where we are stuck.. and there is no synchronization to make sure it completed and its effect is visible to the worker thread before it uses exceptionPort.

So I think the crash is due to this race between allocating exceptionPort and using it, resulting in an invalid exceptionPort being sometimes passed to the kernel.
So this patch is a simple speculative fix, by running startMachExceptionHandlerThread() in initializeThreading(), before JSLock()::lock() can be run.

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

Source/WTF:

Make startMachExceptionHandlerThread visible so that we can make sure it is called whenever initializing JSC.

  • wtf/threads/Signals.cpp:

(WTF::startMachExceptionHandlerThread):

  • wtf/threads/Signals.h:
5:31 PM Changeset in webkit [260164] by Kocsen Chung
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260133. rdar://problem/61856640

REGRESSION (r259610): WebGL does not work at all on iOS (was: Google Maps tiles turn black after initial load)
<rdar://problem/61794480>

Unreviewed, partial revert of r259610 because it broke Google Maps.
Stop using RunningBoard for the "Foreground" assertion because it fails to
give the target GPU access.

  • UIProcess/ios/ProcessAssertionIOS.mm: (WebKit::runningBoardNameForAssertionType):

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

5:07 PM Changeset in webkit [260163] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Lay the groundwork for SynchronousScrollingReason on overflow nodes
https://bugs.webkit.org/show_bug.cgi?id=210565

Reviewed by Tim Horton.

Make setSynchronousScrollingReasons() public on ScrollingCoordinator because we're going
to be calling it for overflow scrolling nodes.

Call ScrollingCoordinator::slowRepaintObjectsDidChange() not just when we go between
none some some slow-repaint objects, but whenever the set changes. slowRepaintObjectsDidChange()
is lightweight.

Minor cleanup in FrameView to avoid testing Page* nullness every time.

  • page/FrameView.cpp:

(WebCore::FrameView::prepareForDetach):
(WebCore::FrameView::isScrollSnapInProgress const):
(WebCore::FrameView::usesAsyncScrolling const):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::removeViewportConstrainedObject):
(WebCore::FrameView::scrollingCoordinator const):
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling const):
(WebCore::FrameView::isRubberBandInProgress const):
(WebCore::FrameView::requestScrollPositionUpdate):
(WebCore::FrameView::layoutOrVisualViewportChanged):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::scrollableAreaSetChanged):
(WebCore::FrameView::wheelEvent):
(WebCore::FrameView::setScrollPinningBehavior):

  • page/FrameView.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::slowRepaintObjectsDidChange):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsForFrameView const):
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText const):
(WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange): Deleted.
(WebCore::ScrollingCoordinator::synchronousScrollingReasons const): Deleted.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBacking):

5:04 PM Changeset in webkit [260162] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for r260161.

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):

4:33 PM Changeset in webkit [260161] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r260151.

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):

4:32 PM Changeset in webkit [260160] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[IPC Hardening] MachMessage::create() should use checked arithmetic
<https://webkit.org/b/210572>
<rdar://problem/61729947>

Reviewed by Chris Dumez.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendOutgoingMessage):

  • Add nullptr check since MachMessage::create() can return an empty std::unique_ptr<> now.
  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):

  • Use CheckedSize to compute the buffer size.
4:26 PM Changeset in webkit [260159] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed PLT fix after r260081.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::decodeBundleParameters):

4:17 PM Changeset in webkit [260158] by Ben Nham
  • 2 edits in trunk/Source/WebKit

DidFirstLayerFlush IPC can be head-of-line-blocked and delay first paint by 200+ ms on process swap
https://bugs.webkit.org/show_bug.cgi?id=210571

Reviewed by Geoffrey Garen.

When we process swap, the layer swap/unhiding for the new hosted layer is gated by the
DidFirstLayerFlush IPC. But actually sending this IPC can be head-of-line blocked for an
arbitrarily long time because we append it to the queue of messages for the main run loop to
process. In some cases, e.g. for the NYT PLT content, this blocks first paint by 200 ms
while the WebProcess main thread is busy doing other things (like executing deferred
scripts).

To fix this, use a CATransaction commit handler to send the IPC right after we commit.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::sendDidFirstLayerFlushIfNeeded):

4:12 PM Changeset in webkit [260157] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r260101. rdar://problem/61853298

createArchiveList() in WebCoreArgumentCodersMac.mm should do more validity checks
<https://webkit.org/b/210448>
<rdar://problem/61677029>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::createArchiveList): Add more validity checks.

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

4:09 PM Changeset in webkit [260156] by wenson_hsieh@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed, fix the watchOS and tvOS builds after r260146

Move some code for controlling the presentation of context menus on iOS behind USE(UICONTEXTMENU).

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
3:16 PM Changeset in webkit [260155] by Diego Pino Garcia
  • 2 edits
    8 adds in trunk/LayoutTests

[GTK] Gardening, emit baselines after r260139
https://bugs.webkit.org/show_bug.cgi?id=210573

Unreviewed gardening.

  • platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt: Added.
3:01 PM Changeset in webkit [260154] by Jack Lee
  • 2 edits in trunk/LayoutTests

Infinite loop in InsertListCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=210354
<rdar://problem/61427778>

Reviewed by Geoffrey Garen.

Update the regression test for this hang issue.

  • editing/inserting/insert-list-end-of-table-expected.txt: Added.
  • editing/inserting/insert-list-end-of-table.html: Added.
2:57 PM Changeset in webkit [260153] by Jack Lee
  • 3 edits
    2 adds in trunk

Source/WebCore:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Quit forwardDeleteKeyPressed() if FrameSelection::modify() returns empty selection.

Test: editing/deleting/forward-delete-UserSelect-None-element.html

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::forwardDeleteKeyPressed):

LayoutTests:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Added a regression test for the crash.

  • editing/deleting/forward-delete-UserSelect-None-element-expected.txt: Added.
  • editing/deleting/forward-delete-UserSelect-None-element.html: Added.
2:23 PM Changeset in webkit [260152] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.9.3

Tag Safari-610.1.9.3.

2:18 PM Changeset in webkit [260151] by Ross Kirsling
  • 9 edits in trunk

[ECMA-402] Extension values should default to true, canonicalize without "-true"
https://bugs.webkit.org/show_bug.cgi?id=210457

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:
  • stress/intl-numberformat.js:
  • stress/intl-object.js:
  • stress/intl-pluralrules.js:

Fix tests.

  • test262/expectations.yaml:

Mark two test cases as passing.

Source/JavaScriptCore:

This patch implements two simple intertwining updates to ECMA-402:

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):
(JSC::resolveLocale):

2:07 PM Changeset in webkit [260150] by Peng Liu
  • 10 edits in trunk/Source

Video elements don't return to the correct position when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=210529

Reviewed by Jer Noble.

Source/WebCore:

Add WEBCORE_EXPORT to the function setNeedsDOMWindowResizeEvent().

  • dom/Document.h:

Source/WebKit:

Some web pages use the "resize" event handler to calculate the element size after
they exit fullscreen, and the calculation is based on the container element size which
might be affected by the fullscreen mode.

We need to call WebPageProxy::setNeedsDOMWindowResizeEvent() to fire the "resize" event
in the repaint callback after the exiting fullscreen process is completed and the
possible layout change due to exiting fullscreen is done. Otherwise the size calculation
might be wrong.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _completedExitFullScreen]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setNeedsDOMWindowResizeEvent):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
1:42 PM Changeset in webkit [260149] by Kocsen Chung
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

1:38 PM Changeset in webkit [260148] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

stress/delete-property-dfg-inline.js.ftl-no-cjit-small-pool consistently timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=210513

Patch by Justin Michaud <justin@justinmichaud.com> on 2020-04-15
Reviewed by Saam Barati.

  • stress/delete-property-dfg-inline.js:
1:22 PM Changeset in webkit [260147] by wenson_hsieh@apple.com
  • 7 edits
    2 adds in trunk

[iPadOS] Some pages indefinitely zoom in and out due to idempotent text autosizing
https://bugs.webkit.org/show_bug.cgi?id=210551
<rdar://problem/56820674>

Reviewed by Tim Horton.

Source/WebCore:

Rename m_initialScale and initialScale() on Page to m_initialScaleIgnoringContentSize and
initialScaleIgnoringContentSize(), respectively. See WebKit/ChangeLog for more details.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html

  • page/Page.cpp:

(WebCore::Page::setInitialScaleIgnoringContentSize):
(WebCore::Page::setInitialScale): Deleted.

  • page/Page.h:

(WebCore::Page::initialScaleIgnoringContentSize const):
(WebCore::Page::initialScale const): Deleted.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustmentForTextAutosizing):

Source/WebKit:

On a non-responsive web page with one or lines of non-wrapping text of a specific length (just under 1920px),
it's possible for the combination of idempotent text autosizing heuristics and viewport shrink-to-fit to cause
the single line of text to grow and shrink in size indefinitely, and additionally cause the initial scale to
thrash between multiple values indefinitely. This manifests in the entire page repeatedly zooming in and out
immediately after page load.

Consider the following scenario:

(1) A viewport configuration change (e.g. due to parsing the viewport meta tag) schedules the timer to reset

idempotent text autosizing. Let's suppose the page has a really long line of non-wrapping 12px text that is
below 1920px wide.

(2) The timer fires, invalidating styles and recomputing text autosizing given the current initial scale. The

current initial scale is below 1, since ViewportConfiguration will attempt to shrink to fit the page to
avoid horizontal scrolling. This causes text autosizing to boost the long line of text to a larger value
(let's say 17px).

(3) The next time we perform style recomputation and layout, we discover that the content width of the page is

now larger than 1920px, which is the maximum width which we'll attempt to shrink to fit; when computing
initial scale, we give up trying to shrink down to avoid making the inital scale too small, and instead just
keep it at 1.

(4) This change in viewport configuration then schedules another idempotent text autosizing reset. When this

timer fires, it sees that the initial scale is now 1, which means that the text is no longer boosted, so we
make the single line of text small again (12px).

(5) After the next style recomputation and layout, this causes the content width of the page to dip below the

1920px threshold, causing the initial scale to dip below 1 again. As detailed above, this schedules another
idempotent text autosizing update, which now boosts font size once again, and the cycle continues.

To fix this, instead of consulting the initial scale (ViewportConfiguration::initialScale()) when computing
the boosted font size for idempotent text autosizing, we can instead ask for the initial scale ignoring content
size (ViewportConfiguration::initialScaleIgnoringContentSize()). This prevents changes in content size due to
idempotent autosizing from affecting the idempotent autosizing heuristic (through the different initial scale),
and ensures that this method of text autosizing actually remains idempotent.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded):
(WebKit::WebPage::viewportConfigurationChanged):

LayoutTests:

Add a layout test to verify that on a page with a single line of text, if idempotent text autosizing is enabled,
the text size is boosted by idempotent autosizing, but we don't end up getting into a state where the computed
font size flickers between multiple values.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html: Added.
1:20 PM Changeset in webkit [260146] by Megan Gardner
  • 5 edits in trunk/Source/WebKit

Data Detected Actions sheets are presented from odd locations.
https://bugs.webkit.org/show_bug.cgi?id=210531
<rdar://problem/60941346>

Reviewed by Wenson Hsieh.

Use the existing context menu targeted preview code to ensure that the
data detected menus are presented in a good location.

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

(-[WKActionSheetAssistant contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

12:51 PM Changeset in webkit [260145] by Ross Kirsling
  • 7 edits in trunk

[ECMA-402] Fix Intl.DateTimeFormat patterns and fields in WebKit
https://bugs.webkit.org/show_bug.cgi?id=209783

Reviewed by Keith Miller.

JSTests:

  • stress/date-toLocaleString.js:
  • stress/intl-datetimeformat.js:

Add tests and fix some existing ones.

  • test262/config.yaml:
  • test262/expectations.yaml:

Mark eight test cases passing...but skip half of them due to outdated CLDR data in macOS system ICU.

Source/JavaScriptCore:

This patch implements two intertwining normative changes to Intl.DateTimeFormat:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::partTypeString):

12:42 PM Changeset in webkit [260144] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210563

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:15 PM Changeset in webkit [260143] by Russell Epstein
  • 1 copy in tags/Safari-610.1.9.2

Tag Safari-610.1.9.2.

11:53 AM Changeset in webkit [260142] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r258977): Crash under Document::visibilityStateChanged
https://bugs.webkit.org/show_bug.cgi?id=210555

Reviewed by Youenn Fablet.

Re-introduce null check of page in Document::visibilityStateChanged() which got inadvertently
dropped in r258977.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):

11:32 AM Changeset in webkit [260141] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Remove expectations for imported/blink/storage/indexeddb/blob-basics-metadata.html
https://bugs.webkit.org/show_bug.cgi?id=199117

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:21 AM Changeset in webkit [260140] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION( r260114): [ Mac and iOS ] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=210549
<rdar://problem/61828495>

Unreviewed.

Partial revert of r260114. See webkit.org/b/210559 for details.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):

10:39 AM Changeset in webkit [260139] by graouts@webkit.org
  • 22 edits in trunk

[Web Animations] Add support for pseudoElement on KeyframeEffect and KeyframeEffectOptions
https://bugs.webkit.org/show_bug.cgi?id=207290
<rdar://problem/59199003>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark 23 additional WPT tests as PASS.

  • web-platform-tests/css/css-animations/Document-getAnimations.tentative-expected.txt:
  • web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/Document-getAnimations.tentative-expected.txt:
  • web-platform-tests/web-animations/idlharness.window-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt:

Source/WebCore:

We add the required IDL bindings such that JS-originated Web Animations can target pseudo-elements, either via the KeyframeEffect.pseudoElement
property, or via the KeyframeEffectOptions.pseudoElement property, which is set on the object passed to the KeyframeEffect constrcutor and
Element.animate().

This means that a PseudoElement can be targeted by an animation even if it's not been created through style resolution by virtue of a ::before
or ::after selector and a "content" style rule. This means that when either the "target" or "pseudoElement" property of KeyframeEffect is set,
we ensure a PseudoElement is created and set on the host element if required. And additionally, we ensure that during style resolution, animations
are applied to such pseudo-elements with a new PseudoElement::isTargetedByKeyframeEffectRequiringPseudoElement() method that indicates that a
JS-originated KeyframeEffect targets this pseudo-element.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create): Handle the new KeyframeEffectOptions.pseudoElement property in the KeyframeEffect constructor.
(WebCore::KeyframeEffect::targetsPseudoElement const): Indicates whether this effect targets a pseudo-element and not a regular
element or a null target.
(WebCore::KeyframeEffect::targetElementOrPseudoElement const): Use the new targetsPseudoElement() method to determine whether a
pseudo-element is targeted. We also remove an assertion that only made sense when m_pseudoId could only be set via a CSS-originated
animation and another one when the only possible m_pseudoId values were PseudoId::Before and PseudoId::After.
(WebCore::KeyframeEffect::setTarget): Call the new didChangeTargetElementOrPseudoElement() method if the provided value differs
from the stored value for m_target.
(WebCore::KeyframeEffect::pseudoElement const): Return the matching normalized string with a :: prefix for m_pseudoId if the target
is a pseudo-element. Note that PseudoElement::pseudoElementNameForEvents() will only return a string for "::before" and "::after" since
we only know how to animate these pseudo-elements.
(WebCore::KeyframeEffect::setPseudoElement): Determine a matching PseudoId, if any, for the provided string, and call the new
didChangeTargetElementOrPseudoElement() method if the provided value differs from the stored value for m_pseudoId.
(WebCore::KeyframeEffect::didChangeTargetElementOrPseudoElement): New method called when either m_target or m_pseudoId is changed
such that we can ensure the required PseudoElement is created if the animation targets a pseudo-element. Then we run the same logic
that we used to in KeyframeEffect::setTarget().
(WebCore::KeyframeEffect::requiresPseudoElement const): Indicates whether a PseudoElement must remain created for this KeyframeEffect,
which is only necessary for JS-originated effects targeting a pseudo-element.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • animation/KeyframeEffectOptions.h:
  • animation/KeyframeEffectOptions.idl:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::requiresPseudoElement const): Indicates whether one or more JS-originated keyframe effects in the stack target
the PseudoElement owning this stack.

  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles): Use KeyframeEffect::targetsPseudoElement() to determine whether the animation's effect's target is a
pseudo-element, in which case we need to throw a NoModificationAllowedError exception.

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::rendererIsNeeded): Return true also when one or more JS-originated keyframe effects in the stack target this pseudo-element.
(WebCore::PseudoElement::isTargetedByKeyframeEffectRequiringPseudoElement): Return true when one or more JS-originated keyframe effects in the stack
target this pseudo-element.

  • dom/PseudoElement.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::createContentRenderers): Remove the assertion that the "content" property was set since it's valid for this function to now be called
due to JS-originated keyframe effects targeting the given pseudo-element. Instead we add an assertion that there are such keyframe effects in
case no "content" property was set.
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement): Only remove pseudo-elements if there are no JS-originated keyframe effects
targeting the specified pseudo-element.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolvePseudoStyle): Allow animated style resolution for pseudo-elements targeted by JS-originated keyframe effects.

10:27 AM Changeset in webkit [260138] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=210351

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:22 AM Changeset in webkit [260137] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS] Potential crash under WebProcess::platformInitializeWebProcess
https://bugs.webkit.org/show_bug.cgi?id=210547

Reviewed by Brent Fulgham.

If the UI process fails to issue an extension to the runningboard service, the WebContent process will crash
while trying to consume this extension.

No new tests, since the test runners are unsandboxed, so issuing the extension will always succeed.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

9:39 AM Changeset in webkit [260136] by Russell Epstein
  • 6 edits in branches/safari-610.1.9-branch

Cherry-pick r259753. rdar://problem/61360674

[macOS] Crash under WebKit::SandboxExtension::consume
https://bugs.webkit.org/show_bug.cgi?id=210188

Reviewed by Geoffrey Garen.

Source/WebKit:

When issuing a mach lookup extension to the database mapping service in the UI process fails, the WebContent
process will crash when trying to consume the extension.

No new tests, since I am not able to reproduce the issue.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:

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

9:39 AM Changeset in webkit [260135] by Russell Epstein
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

9:35 AM Changeset in webkit [260134] by Brent Fulgham
  • 5 edits in trunk

[Cocoa] Remove generic parameter serialization fallback
https://bugs.webkit.org/show_bug.cgi?id=210509
<rdar://problem/55522650>

Reviewed by Geoffrey Garen.

Source/WebKit:

Tested by BundleFormDelegate parameter serialization tests...

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setInputDelegate:]):

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::elementDidFocus):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm:

(WKWebProcessPlugInWithoutRegisteredCustomClass): Update to reflect
fact that we block serialization of unregistered classes.

9:18 AM Changeset in webkit [260133] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r259610): WebGL does not work at all on iOS (was: Google Maps tiles turn black after initial load)
<rdar://problem/61794480>

Unreviewed, partial revert of r259610 because it broke Google Maps.
Stop using RunningBoard for the "Foreground" assertion because it fails to
give the target GPU access.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::runningBoardNameForAssertionType):

9:06 AM Changeset in webkit [260132] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK4] Fix use of gtk init functions
https://bugs.webkit.org/show_bug.cgi?id=210550

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add gtk_init and gtk_init_check receiving parameters to GtkVersioning.

  • PlatformGTK.cmake:
  • platform/graphics/PlatformDisplay.cpp:
  • platform/gtk/GtkVersioning.h:

(gtk_init):
(gtk_init_check):

Source/WebKit:

Include GtkVersioning.h instead of gtk.h

  • WebProcess/gtk/WebProcessMainGtk.cpp:

Tools:

Include GtkVersioning.h instead of gtk.h.

  • TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:
  • TestWebKitAPI/gtk/main.cpp:
  • WebKitTestRunner/gtk/main.cpp:
8:48 AM Changeset in webkit [260131] by ysuzuki@apple.com
  • 4 edits
    20 adds in trunk

import.meta.url: baseURL for a module script should be response URL, not request URL
https://bugs.webkit.org/show_bug.cgi?id=205294

Reviewed by Youenn Fablet.

Source/WebCore:

The module should expose response URL as import.meta.url instead of request URL.
If redirection happens, this URL should be redirected one.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::createImportMetaProperties):
(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/ScriptModuleLoader.h:

LayoutTests:

AppleWin networking does not properly propagate fragment if redirect location clears it. This is a known issue[1].

[1]: See http/tests/navigation/redirect-to-fragment2.html [ Failure ] in platform/win/TestExpectations.

  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-with-fragment-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-with-fragment.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/resources/import-meta-url-expose.js: Added.
  • http/wpt/resources/redirect.py: Added.

(main):

  • http/wpt/service-workers/module-meta-url-fragment-worker.js: Added.

(async e):

  • http/wpt/service-workers/module-meta-url-fragment.https-expected.txt: Added.
  • http/wpt/service-workers/module-meta-url-fragment.https.html: Added.
  • http/wpt/service-workers/resources/module-meta-url-fragment.html: Added.
  • platform/win/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment-expected.txt: Added.
8:46 AM Changeset in webkit [260130] by Jonathan Bedard
  • 4 edits in trunk/Tools

REGRESSION: [ Mojave+ Debug WK1 ] Layout Test imported/blink/storage/indexeddb/blob-basics-metadata.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=199117
<rdar://problem/52967035>

Reviewed by Alexey Proskuryakov.

  • Scripts/run-javascriptcore-tests: Set JSC_useKernTCSM to false.
  • Scripts/webkitpy/port/base.py:

(Port.setup_environ_for_server): Forward JSC_useKernTCSM.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): Set JSC_useKernTCSM to false.

8:32 AM Changeset in webkit [260129] by jer.noble@apple.com
  • 4 edits in trunk/Source

isNullFunctionPointer() can fail for symbols not explicitly marked as weakly linked.
https://bugs.webkit.org/show_bug.cgi?id=210532

Reviewed by Tim Horton.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:

Source/WebCore:

Symbols whose declarations are explicitly marked as weakly imported are guaranteed to be
NULL when the library containing those symbols is not available at runtime, or when the
symbol itself isn't present in the version of the library which is available at runtime. For
symbols which are not explicitly marked as weakly imported (because, e.g., the framework
itself is weakly imported), this technique can fail. Rather than test the nullity of a
random static C++ class method with isNullFunctionPointer(), explicitly mark as weak_import
a utility method added by the WebKit project, which conveniently is already used from within
LibWebRTCProviderCocoa, and test the nullity of that method instead.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable):

8:29 AM Changeset in webkit [260128] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Adopt interface AVAudioRoutingArbiter for Mac
https://bugs.webkit.org/show_bug.cgi?id=210167

Reviewed by Jer Noble.

A follow-up patch to fix a build error.

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):

7:54 AM Changeset in webkit [260127] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK] Make PlatformScreen::screenDPI() GTK4-ready
https://bugs.webkit.org/show_bug.cgi?id=210543

Reviewed by Adrian Perez de Castro.

No new tests needed.

This method is using deprecated and removed APIs
from GDK. Guard the removed API usage so that it's only
used in GTK3 and update to use the replacement APIs otherwise.

Also, make it to also use the gtk-xft-dpi GtkSettings property.
This method is mostly used in response to a change in this
property, so ignoring its value doesn't seem a good idea.

The following priority is used:

  1. (GTK3 only) query gdk_screen_get_resolution().
  2. Use the GtkSettings::gtk-xft-dpi property.
  3. Calculate the actual DPI from the monitor 0's properties.
  4. If none of these succeed, use the default DPI, 96.
  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenDPI):

7:33 AM Changeset in webkit [260126] by Carlos Garcia Campos
  • 4 edits
    1 delete in trunk/Source/WebCore

[GTK] Remove IconGtk
https://bugs.webkit.org/show_bug.cgi?id=210546

Reviewed by Adrian Perez de Castro.

It's currently unused in GTK port since we never show an icon for file uploads.

  • SourcesGTK.txt:
  • platform/graphics/Icon.cpp:
  • platform/graphics/Icon.h:
  • platform/graphics/gtk/IconGtk.cpp: Removed.
7:25 AM Changeset in webkit [260125] by Adrian Perez de Castro
  • 4 edits
    1 add in trunk/Source

[GTK4] Provide an alternative to gtk_widget_{get,is}_toplevel()
https://bugs.webkit.org/show_bug.cgi?id=210463

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Adapt utility functions to GTK4, and provide replacement implementations for the
gtk_widget_get_tolevel() and gtk_widget_is_toplevel() functions for GTK4 builds.

No new tests needed.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::gtkWindowGetOrigin): Added.
(WebCore::convertWidgetPointToScreenPoint): Move code used to find the window position
into a separate function, and use it to avoid the USE(GTK4) conditional here.
(WebCore::widgetIsOnscreenToplevelWindow): Adapt to make it work with GTK4.

  • platform/gtk/GtkVersioning.h: Added.

(gtk_widget_is_toplevel): Alternative implementation for GTK4.
(gtk_widget_get_toplevel): Ditto.
(gtk_window_get_position): Ditto.

Source/WebKit:

  • UIProcess/API/glib/WebKitUIClient.cpp: Adapt to take into account that GTK4 does not

provide the GtkWidget.configure-event signal.

6:50 AM Changeset in webkit [260124] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210545

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:08 AM Changeset in webkit [260123] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK4] Adapt to cursor API changes
https://bugs.webkit.org/show_bug.cgi?id=210453

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • platform/gtk/CursorGtk.cpp:

(WebCore::fallbackCursor): Utility function which returns the "default" cursor for GTK4.
(WebCore::createNamedCursor): Adapt to the changes in the gdk_cursor_new_from_name().
(WebCore::createCustomCursor): Create a GdkTexture directly when the given Cairo surface is
in one of the pixel formats supported by gdk_memory_texture_new(), otherwise convert first;
then create a GdkCursor from the GdkTexture.

5:28 AM Changeset in webkit [260122] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Do not run gtk-doc when building with GTK4

It's not supported yet.

  • Source/PlatformGTK.cmake:
2:49 AM Changeset in webkit [260121] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210542

Unreviewed gardening.

  • platform/gtk/TestExpectations:
1:53 AM Changeset in webkit [260120] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r259891.

Causes significant iOS MotionMark regression

Reverted changeset:

"Switch unused IOKit classes from allow-with-report to deny-
with-report"
https://bugs.webkit.org/show_bug.cgi?id=210136
https://trac.webkit.org/changeset/259891

12:02 AM Changeset in webkit [260119] by Devin Rousso
  • 14 edits
    3 adds in trunk

[ESNext] Implement logical assignment operators
https://bugs.webkit.org/show_bug.cgi?id=209716

Reviewed by Ross Kirsling.

JSTests:

  • stress/logical-assignment-operator-and.js: Added.
  • stress/logical-assignment-operator-nullish.js: Added.
  • stress/logical-assignment-operator-or.js: Added.
  • test262/config.yaml:
  • test262/expectations.yaml:

Right now, test262 expects an early error to be thrown if the lhs is not simple, which does
not match what we do with other read-modify assignment operators. This is likely to change
in the future to match existing behavior (throw a ReferenceError) [1].

[1]: <https://github.com/tc39/ecma262/issues/257#issuecomment-502878708>

Source/JavaScriptCore:

Implement the logical assignment operators proposal, which is now Stage 3. It introduces
three new assignment operators which will only store the result of the rhs in the lhs if the
lhs meets the given condition:

  • ??=, for if the lhs is nullish (null or undefined)
  • ||=, for if the lhs is falsy
  • &&=, for if the lhs is truthy

This short circuiting can be beneficial as it can avoid a redundant store when used in the
common JavaScript programming pattern of "defaulting" a parameter.

`js

function foo(x) {

x = x
42;

}

`

If x is a truthy value, it would result in the rhs x being stored back into the lhs x.
In some situations, this can have negative unintended side-effects, such as for innerHTML.

Logical assignment operators, however, are defined such that they only store if the rhs is
to actually be needed/used, skipping the redundant store and simply returning lhs otherwise.

In the case of readonly references, this means that an error is only thrown when the
assignment occurs, meaning that if the lhs already satisfies the condition it will be used
and returned with no error.

  • parser/ParserTokens.h:
  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeAssignNode):

  • parser/Nodes.h:
  • parser/NodeConstructors.h:

(JSC::ShortCircuitReadModifyResolveNode::ShortCircuitReadModifyResolveNode): Added.
(JSC::ShortCircuitReadModifyBracketNode::ShortCircuitReadModifyBracketNode): Added.
(JSC::ShortCircuitReadModifyDotNode::ShortCircuitReadModifyDotNode): Added.

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitShortCircuitAssignment): Added.
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode): Added.
(JSC::ShortCircuitReadModifyDotNode::emitBytecode): Added.
(JSC::ShortCircuitReadModifyBracketNode::emitBytecode): Added.

  • runtime/OptionsList.h:

Add a useLogicalAssignmentOperators setting for controlling this feature.

Tools:

  • Scripts/run-jsc-stress-tests:

Apr 14, 2020:

11:20 PM Changeset in webkit [260118] by Simon Fraser
  • 10 edits
    3 adds in trunk

[Async overflow scroll] Backgrounds missing on gmail sometimes
https://bugs.webkit.org/show_bug.cgi?id=210506
<rdar://problem/60523869>

Reviewed by Zalan Bujtas.
Source/WebCore:

When painting the scrolled contents layers of accelerated overflow:scroll, RenderBlock::paint()
needs to not short-circuit when the dirty rect is outside a clipping rect, because accelerated
overflow involves overdraw for tiles outside the visible area.

There were two code paths that made this mostly work: overflowRectForPaintRejection() tested for
usesCompositedScrolling(), and the #if PLATFORM(IOS_FAMILY) made it work on iOS.

For content involving flexbox, overflowRectForPaintRejection() gave the wrong answer because
flex layout would sometimes clear m_overflow, even on an overflow:scroll element.

So remove overflowRectForPaintRejection(), and instead revert to the simple visualOverflowRect(),
but first check a bit that's passed down from compositing code that indicates that
we're painting the contents of composited scroll

Test: compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html

  • rendering/PaintPhase.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::overflowRectForPaintRejection const): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):

LayoutTests:

Test with a scroller inside a flexbox; programmatically scrolls the scroller to the bottom,
then mouseWheels up to reveal new tiles.

  • TestExpectations:
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html: Added.
  • platform/mac/TestExpectations: Test is macOS-only because it uses wheel events.
10:30 PM Changeset in webkit [260117] by jer.noble@apple.com
  • 2 edits in trunk/Tools

WKTR always enables capturing audio/video in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=210319

Reviewed by Tim Horton.

Capturing in the GPUProcess should be off by default. GPU capture can be enabled at runtime via
the --internal-feature flag of run-webkit-tests.

  • WebKitTestRunner/TestOptions.h:
9:13 PM Changeset in webkit [260116] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

File Upload Menus presented from odd locations.
https://bugs.webkit.org/show_bug.cgi?id=210523
<rdar://problem/60390846>

Use the existing context menu targeted preview code to ensure that the
file menus are presented in a good location.

Reviewed by Wenson Hsieh.

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

(-[WKFileUploadPanel contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

8:10 PM Changeset in webkit [260115] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Garden media/media-source/media-source-seek-back flaky crashes

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:46 PM Changeset in webkit [260114] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Content expanding is broken on icourse163.org
https://bugs.webkit.org/show_bug.cgi?id=210510
<rdar://problem/45951820>

Reviewed by Simon Fraser.

www.icourse163.org's animation code expects a decimal point in the rAF timestamp (millisecond resolution).

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):

  • page/Quirks.cpp:

(WebCore::Quirks::needsMillisecondResolutionForHighResTimeStamp const):

  • page/Quirks.h:
7:35 PM Changeset in webkit [260113] by Devin Rousso
  • 18 edits
    2 copies
    1 add in trunk

Web Inspector: Debugger: add a Step next that steps by expression
https://bugs.webkit.org/show_bug.cgi?id=210324

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Step next is a hybrid of Step over and Step into which continues execution to the next pause
opportunity within the current (or ancestor) call frame. It is especially useful when trying
to debug minified code, such as trying to continue to c() in a() && b() && c();, where
Step over would continue to the next statement (i.e. after the ;) and Step in would
continue to the first line inside a() (and would require a Step out to get back).

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::stepNext): Added.

  • debugger/Debugger.h:
  • debugger/Debugger.cpp:

(JSC::Debugger::stepNextExpression): Added.
(JSC::Debugger::atExpression):
(JSC::Debugger::clearNextPauseState):

Source/WebInspectorUI:

Step next is a hybrid of Step over and Step into which continues execution to the next pause
opportunity within the current (or ancestor) call frame. It is especially useful when trying
to debug minified code, such as trying to continue to c() in a() && b() && c();, where
Step over would continue to the next statement (i.e. after the ;) and Step in would
continue to the first line inside a() (and would require a Step out to get back).

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.stepNext): Added.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI.debuggerStepNext): Added.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/StepNext.svg: Added.

LayoutTests:

  • inspector/debugger/stepping/stepNext.html: Added.
  • inspector/debugger/stepping/stepNext-expected.txt: Added.
  • inspector/debugger/stepping/stepInto.html:
  • inspector/debugger/stepping/stepInto-expected.txt:
  • inspector/debugger/stepping/stepOut.html:
  • inspector/debugger/stepping/stepOut-expected.txt:
  • inspector/debugger/stepping/stepOver.html:
  • inspector/debugger/stepping/stepOver-expected.txt:

Renamed functions for clarity and added additional test cases from other commands.

6:24 PM Changeset in webkit [260112] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

dictionaryValueOfType() in WebCoreArgumentCodersMac.mm can be replaced with dynamic_cf_cast<>()
<https://webkit.org/b/210456>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::dictionaryValueOfType): Delete.
(IPC::extractDictionaryValue): Add.

  • Use dynamic_cf_cast<>() in place of manually checking the CFTypeID of each object.

(IPC::createArchiveList):

  • Call new extractDictionaryValue() template function to verify values are the correct types in the dictionary and to set the output variables.
6:08 PM Changeset in webkit [260111] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use CFArrayGetValues() in createArchiveList() in WebCoreArgumentCodersMac.mm
<https://webkit.org/b/210519>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList):

  • Use CFArrayGetValues() to copy array more efficiently.
6:07 PM Changeset in webkit [260110] by Alan Coon
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260104. rdar://problem/61800020

REGRESSION (r259898): Tabs occasionally go blank and get stuck that way
https://bugs.webkit.org/show_bug.cgi?id=210520
<rdar://problem/61776830>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): setThumbnailView calls setAcceleratedCompositingRootLayer in order to reconnect the existing root layer. After r259898, this would cause us to go down the process-swap path, and hide the root layer, and nothing would ever come along and fix it.

If setAcceleratedCompositingRootLayer is called with the existing root
layer, that cannot be a process swap, so ignore it and proceed as before.

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

4:59 PM Changeset in webkit [260109] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle:
  • blog-files/speculation-in-jsc/full-add-cfg.svg:
4:58 PM Changeset in webkit [260108] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't show tooltips for tabs
https://bugs.webkit.org/show_bug.cgi?id=210464

Reviewed by Devin Rousso.

Don't show tooltips when they match the name of the tab. We no longer truncate tab names
so the tooltip is redundant.

Only show tooltips for settings and search (pinned tabs).

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem):
(WI.TabBarItem.prototype.set title):

4:57 PM Changeset in webkit [260107] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle:
  • blog-files/speculation-in-jsc/full-add-cfg.svg:
4:57 PM Changeset in webkit [260106] by sbarati@apple.com
  • 3 edits in trunk/JSTests

Skip all low executable memory wasm tests on arm64
https://bugs.webkit.org/show_bug.cgi?id=210522

Reviewed by Tadeu Zagallo.

In my original JIT islands patch, I only skipped one of the "low executable
memory" tests. But the others are also causing problems on the iOS JSC test
runners, so let's just skip them all.

  • wasm/lowExecutableMemory/exports-oom.js:
  • wasm/lowExecutableMemory/imports-oom.js:
4:54 PM Changeset in webkit [260105] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle: Added.
  • blog-files/speculation-in-jsc/full-add-cfg.svg: Added.
4:53 PM Changeset in webkit [260104] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r259898): Tabs occasionally go blank and get stuck that way
https://bugs.webkit.org/show_bug.cgi?id=210520
<rdar://problem/61776830>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer):
setThumbnailView calls setAcceleratedCompositingRootLayer in order to reconnect the
existing root layer. After r259898, this would cause us to go down the
process-swap path, and hide the root layer, and nothing would ever
come along and fix it.

If setAcceleratedCompositingRootLayer is called with the existing root
layer, that cannot be a process swap, so ignore it and proceed as before.

4:33 PM Changeset in webkit [260103] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/dfg-pipeline-dark.graffle: Added.
  • blog-files/speculation-in-jsc/dfg-pipeline-dark.svg: Added.
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.svg:
3:35 PM Changeset in webkit [260102] by Peng Liu
  • 30 edits
    1 move
    8 adds in trunk

Adopt interface AVAudioRoutingArbiter for Mac
https://bugs.webkit.org/show_bug.cgi?id=210167
Source/WebCore:

Reviewed by Eric Carlson.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):
(WebCore::categoryName): Deleted.

  • platform/audio/mac/AudioSessionMac.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSessionMac.cpp.

(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::categoryOverride const):
(WebCore::AudioSession::setCategoryOverride):

Fix unified build failures.

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h:

Source/WebCore/PAL:

Reviewed by Eric Carlson.

Add softlink for AVAudioRoutingArbiter.

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:

Source/WebKit:

<rdar://problem/59113994>

Reviewed by Eric Carlson.

Add a new cross-process object pair, AudioSessionRouterAbitrator/Proxy which passes routing
arbitration commands from WebContent -> UIProcess. Because the UIProcess can represent
multiple WebContent processes, it must track all outstanding arbitration requests globally.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • Sources.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp: Added.

(WebKit::AudioSessionRoutingArbitratorProxy::AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::~AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::leaveRoutingArbitration):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h: Added.

(WebKit::AudioSessionRoutingArbitratorProxy::category const):
(WebKit::AudioSessionRoutingArbitratorProxy::destinationId):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in: Added.
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm: Added.

(WebKit::SharedArbitrator::sharedInstance):
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::leaveRoutingArbitrationForArbitrator):
(WebKit::AudioSessionRoutingArbitratorProxy::AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::~AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::leaveRoutingArbitration):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::WebProcessProxy):

  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):

  • WebProcess/WebProcess.cpp:
  • WebProcess/cocoa/AudioSessionRoutingArbitrator.cpp: Added.

(WebKit::AudioSessionRoutingArbitrator::AudioSessionRoutingArbitrator):
(WebKit::AudioSessionRoutingArbitrator::supplementName):
(WebKit::AudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitrator::leaveRoutingAbritration):

  • WebProcess/cocoa/AudioSessionRoutingArbitrator.h: Added.
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):

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

Source/WTF:

Reviewed by Eric Carlson.

Add macro HAVE_AVAUDIO_ROUTING_ARBITER.

  • wtf/PlatformHave.h:

Tools:

Reviewed by Eric Carlson.

Add test for softlink of AVAudioRoutingArbiter.

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

3:01 PM Changeset in webkit [260101] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

createArchiveList() in WebCoreArgumentCodersMac.mm should do more validity checks
<https://webkit.org/b/210448>
<rdar://problem/61677029>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList): Add more validity checks.

2:50 PM Changeset in webkit [260100] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

ReadableStreamDefaultController::enqueue should check for worker terminated exception
https://bugs.webkit.org/show_bug.cgi?id=210485

Reviewed by Mark Lam.

Make sure to not assert in case of enqueue exception if we are in a terminating worker.
This is covered by WPT fetch/api/basic/stream-response.any.worker.html and fetch/api/basic/stream-safe-creation.any.worker.html.

  • bindings/js/ReadableStreamDefaultController.h:

(WebCore::ReadableStreamDefaultController::enqueue):

2:36 PM Changeset in webkit [260099] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Protect MediaStreamTrackPrivate and RealtimeMediaSource when iterating its observers
https://bugs.webkit.org/show_bug.cgi?id=210488

Reviewed by Eric Carlson.

Making sure explicitly that the track private and source remain alive while looping from its observers.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver const):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::forEachObserver const):

2:30 PM Changeset in webkit [260098] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Do more checking before reusing precompiled sandbox
https://bugs.webkit.org/show_bug.cgi?id=210304
<rdar://problem/61155623>

Reviewed by Darin Adler.

We recently discovered that the system sandbox framework version does not always change
when breaking changes in the sandbox format are made. This can lead to the precompiled
version of a sandbox not working properly when a sandbox version changes.

To guard against this, make the following changes:

  1. Compare the SANDBOX_BUILD_ID in place when the sandbox was compiled to the value on the current system. SANDBOX_BUILD_ID, which is a GUID, is always regenerated when the sandbox framework is rebuilt.
  1. Compare the OS version in place when the sandbox was compiled to the value on the current system. This will trigger us recompiling sandboxes even when the sandbox framework did not change, but this is a small performance cost that would only happen after a software update.
  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):

2:26 PM Changeset in webkit [260097] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update expectations after r260062
https://bugs.webkit.org/show_bug.cgi?id=210516

Unreviewed gardening.

  • platform/gtk/TestExpectations:
1:59 PM Changeset in webkit [260096] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Computed: de-indent items in the Variables section so that wrapped content doesn't line up with the --
https://bugs.webkit.org/show_bug.cgi?id=210384

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed .property):

1:33 PM Changeset in webkit [260095] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Fix navigator-detached-no-crash expectations

Unreviewed test gardening.

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:

Upload the correct expectation file.

  • platform/wpe/TestExpectations: Removed failing expectation.
1:30 PM Changeset in webkit [260094] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle: Added.
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.svg: Added.
1:27 PM Changeset in webkit [260093] by pvollan@apple.com
  • 7 edits
    1 add in trunk

[iOS] Content filtering needs access to the frontboard service
https://bugs.webkit.org/show_bug.cgi?id=210505

Reviewed by Geoffrey Garen.

Source/WebKit:

Content filtering in the WebContent process needs access to the frontboard service on iOS. Issue an extension
to this service when content filtering is enabled.

API test: WebKit.WebFilterFeatureHasFrontboardServiceAccess

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/WebFilter.mm: Added.

(isManagedSessionMethodOverride):
(TEST):

1:23 PM Changeset in webkit [260092] by commit-queue@webkit.org
  • 7 edits in trunk

AX: Smart Invert doesn't handle the picture elements on foxnews.com
<https://webkit.org/b/210472>

Patch by James Craig <jcraig@apple.com> on 2020-04-14
Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibilty/smart-invert.html

accessibilty/smart-invert-reference.html

Filled out more variants in the test cases, and removed the unnecessary :not() selector.

  • css/html.css:

(@media (inverted-colors) img, picture, video):
(@media (inverted-colors) img:not(picture>img), picture, video): Deleted.

LayoutTests:

Filled out more variants in the test cases, and removed the unnecessary :not() selector.

  • accessibility/smart-invert-expected.txt:
  • accessibility/smart-invert-reference-expected.html:
  • accessibility/smart-invert-reference.html:
  • accessibility/smart-invert.html:
1:23 PM Changeset in webkit [260091] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: treat long strings as non-simple so they aren't truncated
https://bugs.webkit.org/show_bug.cgi?id=210511
<rdar://problem/49570592>

Reviewed by Joseph Pecoraro.

Treat strings longer than 140 characters (WI.FormattedValue.MaxPreviewStringLength) as not
simple so that WI.ConsoleMessageView makes itself expandable, which will show the full
length string when expanded (the truncated string is still shown when collapsed).

  • UserInterface/Views/FormattedValue.js:

(WI.FormattedValue.isSimpleString): Added.
(WI.FormattedValue.hasSimpleDisplay):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._shouldConsiderObjectLossless):

12:15 PM Changeset in webkit [260090] by wenson_hsieh@apple.com
  • 7 edits in trunk/Source

[iPadOS] Wikipedia articles lay out incorrectly in 1/3 multitasking window
https://bugs.webkit.org/show_bug.cgi?id=210501
<rdar://problem/54856323>

Reviewed by Tim Horton.

Source/WebCore:

In a 1/3 multitasking window, Safari currently uses the -[WKWebView _allowsViewportShrinkToFit] SPI to force
pages to shrink down by fitting the content width to the view width. This legacy method of shrinking to fit
involves laying the page out at the normal view width (320px in 1/3 multitasking), and then scaling the page
down such that any amount of horizontal overflow fits within the view.

In iOS 13, a new style of shrinking to fit was introduced in support of two new features: page zoom controls
(accessible via the page formatting menu), and on-by-default page scaling when loading desktop sites on certain
models of iPad where the page width is less than cutoffs of 1112px (in landscape) and 1024px (in portrait). This
new method of shrinking to fit involves laying out at a larger width (computed from a combination of the minimum
effective device width and layout size scale factor), and scaling to fit the effective layout size scale factor
instead of the entire contents of the page. This means that while we may still get horizontal scrolling after
shrinking to fit, the overall layout of the page is preserved.

Currently, in 1/3 multitasking, Safari still relies on the former to scale pages down to fit, which means that
Wikipedia articles (among other websites) do not lay out sensibly. Moreover, even if Safari adopted the second
mechanism for shrinking to fit, layout issues would still exist (albeit to a lesser degree), since we'd still
attempt to shrink the content width down to fit due to the fact that the desktop version of Wikipedia doesn't
have a meta viewport. While we wouldn't get a broken layout, we'd still have a blank column running down the
right side of the page, which is less than ideal.

It's clear that in this case, attempting to shrink page content down to fit the view is suboptimal (at best, it
leads to a large portion of the page being blank; at worst, it completely breaks page layout). To address this
bug for now, add a parallel minimumEffectiveDeviceWidth value that takes effect when ignoring scaling
constraints (i.e. when we're in a multitasking window), and scale the page down to fit this value instead of
fitting the full content width when computing initial scale in ViewportConfiguration::initialScaleFromSize.
Maintaining this value separately from m_minimumEffectiveDeviceWidth makes it much easier to ensure that the
effects of this change are only ever active when the quirk is applied, and also when the view is embedded in a
multitasking window.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldLayOutAtMinimumWindowWidthWhenIgnoringScalingConstraints const):

Introduce a quirk to fix layout issues in multitasking mode on the desktop version of Wikipedia.

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

(WebCore::ViewportConfiguration::initialScaleFromSize const):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidth):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidthWhenIgnoringScalingConstraints):

  • page/ViewportConfiguration.h:

Add a minimum effective device width value that only takes effect when ignoring scaling constraints, and update
shouldIgnoreMinimumEffectiveDeviceWidth() and minimumEffectiveDeviceWidth() to not always return true and
0 (respectively) when ignoring scaling constraints, if m_minimumEffectiveDeviceWidthWhenIgnoringScalingConstraints
is set.

(WebCore::ViewportConfiguration::minimumEffectiveDeviceWidth const):
(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidth const):
(WebCore::ViewportConfiguration::shouldShrinkToFitMinimumEffectiveDeviceWidthWhenIgnoringScalingConstraints const):

Source/WebKit:

Apply the viewport quirk if needed; see WebCore/ChangeLog for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

12:14 PM Changeset in webkit [260089] by Alan Coon
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKitLegacy/mac

Cherry-pick r260043. rdar://problem/61784032

REGRESSION (r259843): "Missing Plug-In" when dragging an image into Mail Compose
https://bugs.webkit.org/show_bug.cgi?id=210458
<rdar://problem/61735361>

Reviewed by Wenson Hsieh.

  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): r259843 changed this code from making a dictionary with a set of key->object mappings to making a dictionary with an array of keys as its only key and an array of objects as that key's value. Not quite the same thing.

Go back to dictionaryWithObjects:forKeys:.

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

12:12 PM Changeset in webkit [260088] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Factor PseudoElement creation calls into a single Element::ensurePseudoElement(pseudoId) method
https://bugs.webkit.org/show_bug.cgi?id=210495

Reviewed by Antti Koivisto.

To support webkit.org/b/207290 we need a way to ensure a PseudoElement is available for ::before and ::after
pseudo-elements on a given Element. We now use a Element::ensurePseudoElement(pseudoId) method to do this and
replace existing places where we would do something similar.

  • dom/Element.cpp:

(WebCore::Element::ensurePseudoElement):

  • dom/Element.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolvePseudoStyle):

12:09 PM Changeset in webkit [260087] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce iteration count and introduce early return to make typed-array-subarray-can-throw-oom-error.js execution time short while throwing an error
https://bugs.webkit.org/show_bug.cgi?id=210507

  • stress/typed-array-subarray-can-throw-oom-error.js:

(canThrow):
(bar):
(get bar):

12:05 PM Changeset in webkit [260086] by Simon Fraser
  • 3 edits
    2 adds in trunk

Scroll snap in subframes is often broken
https://bugs.webkit.org/show_bug.cgi?id=210503

Reviewed by Darin Adler.

Source/WebCore:

RenderBox::findEnclosingScrollableContainer() incorrectly consulted the scrollability
of the main frame, causing snapping in subframes to be broken any time the main frame
was not scrollable.

Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findEnclosingScrollableContainer const):

LayoutTests:

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html: Added.
12:04 PM Changeset in webkit [260085] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

12:00 PM Changeset in webkit [260084] by Alan Coon
  • 1 copy in branches/safari-610.1.10-branch

New branch.

11:48 AM Changeset in webkit [260083] by Andres Gonzalez
  • 6 edits in trunk

Source/WebCore:
Make WTR::AccessibilityUIElements calls to accessibilitySetValue run on AX secondary thread. web content
https://bugs.webkit.org/show_bug.cgi?id=210500

Reviewed by Chris Fleizach.

Removed _accessibilitySetTestValue since it is no longer used, use
_accessibilitySetValue instead.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetTestValue:forAttribute:]): Deleted.

Tools:
Make WTR::AccessibilityUIElements calls to accessibilitySetValue run on AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=210500

Reviewed by Chris Fleizach.

Needed to test accessibility isolated tree mode. Follow up to
https://bugs.webkit.org/show_bug.cgi?id=210392.

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::resetSelectedTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::setAttributeValue):
(WTR::attributesOfElement):
(WTR::descriptionOfElements):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue const):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::setBoolAttributeValue):
(WTR::AccessibilityUIElement::setValue):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
(WTR::AccessibilityUIElement::setSelectedChild const):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::takeFocus):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):

11:42 AM Changeset in webkit [260082] by youenn@apple.com
  • 4 edits in trunk/LayoutTests/imported/w3c

Resync featurepolicy.js to fix WPT mediacapture-streams/MediaStream-default-feature-policy.https.html
https://bugs.webkit.org/show_bug.cgi?id=210482

Reviewed by Geoffrey Garen.

Update to upstream featureploicy.js to fix failure.

  • web-platform-tests/feature-policy/resources/featurepolicy.js:

(assert_feature_policy_supported):
(test_feature_in_iframe):
(test_allowed_feature_for_subframe):
(expect_reports):

  • web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
  • web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt:
11:07 AM Changeset in webkit [260081] by Brent Fulgham
  • 7 edits in trunk

InjectedBundle parameters often need initialization function called before unarchiving
https://bugs.webkit.org/show_bug.cgi?id=189709
<rdar://problem/44573653>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Handle the case where the InjectedBundle parameters do not successfully decode because they contain
an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
after the bundle initialiation function runs, which gives the embedding program the opportunity to
register additional classes that are safe for serialization.

Extend WKWebProcessPlugIn with a method that returns the names of any custom classes that need
to be serialized by the InjectedBundle.

Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
Revise 'initialize' to call this new method.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize): Use the new method.
(WebKit::InjectedBundle::decodeBundleParameters): Added.
(WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
'classesForCoder' method to unarchive the passed bundle parameters, rather than the
NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
NSDictionary object may itself hold other kinds of objects.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:

(WebKit::WKWebProcessPlugIn::additionalClassesForParameterCoder): Added.

Tools:

  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm:

(-[WebProcessPlugIn additionalClassesForParameterCoder]): Added.

10:17 AM Changeset in webkit [260080] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebKit

Address review comments after r260035
https://bugs.webkit.org/show_bug.cgi?id=210440

Reviewed by David Kilzer.

Omit unused argument names.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):

10:08 AM Changeset in webkit [260079] by svillar@igalia.com
  • 2 edits in trunk/Tools

[Flatpak] Make run-webkit-tests obey WEBKIT_JHBUILD
https://bugs.webkit.org/show_bug.cgi?id=210497

Reviewed by Philippe Normand.

run-webkit-tests in linux uses the flatpak SDK if the flatpak
directories are found in the build directory. However it might the the case
that a developer wants to run them using the jhbuild SDK which can be
configured in parallel. We have the WEBKIT_JHBUILD environment variable to
force other scripts to use jhbuild instead of flatpak so we can use it as well
for this use case.

  • flatpak/flatpakutils.py:

(run_in_sandbox_if_available):

10:03 AM Changeset in webkit [260078] by ddkilzer@apple.com
  • 53 edits in trunk/Source/WebCore

Add WARN_UNUSED_RETURN to decode methods in Source/WebCore
<https://webkit.org/b/210416>
<rdar://problem/61693462>

Reviewed by Alex Christensen.

  • Modules/geolocation/GeolocationPositionData.h:
  • Modules/indexeddb/IDBGetAllResult.h:
  • Modules/indexeddb/IDBGetResult.h:
  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBKeyRangeData.h:
  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::decodeKey):

  • Modules/indexeddb/shared/IDBCursorInfo.h:
  • Modules/indexeddb/shared/IDBCursorRecord.h:
  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBError.h:
  • Modules/indexeddb/shared/IDBGetAllRecordsData.h:
  • Modules/indexeddb/shared/IDBGetRecordData.h:
  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBIterateCursorData.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::decodeTimeComparator):

  • dom/EventInit.h:
  • dom/ExceptionData.h:
  • dom/SecurityPolicyViolationEvent.h:
  • editing/FontAttributeChanges.h:
  • editing/FontShadow.h:
  • loader/CanvasActivityRecord.h:
  • loader/FetchOptions.h:

(WebCore::FetchOptions::decodePersistent):

  • platform/ContentFilterUnblockHandler.h:
  • platform/DragItem.h:
  • platform/KeyedCoding.h:
  • platform/LinkIcon.h:
  • platform/ThreadSafeDataBuffer.h:
  • platform/audio/mac/CAAudioStreamDescription.h:
  • platform/cf/KeyedDecoderCF.h:
  • platform/generic/KeyedDecoderGeneric.h:
  • platform/glib/KeyedDecoderGlib.h:
  • platform/graphics/Region.h:
  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::decode):

  • platform/mediastream/MediaConstraints.h:

(WebCore::MediaConstraint::decode):
(WebCore::NumericConstraint::decode):
(WebCore::StringConstraint::decode):

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:
  • platform/mediastream/RealtimeMediaSourceSettings.h:
  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/network/HTTPHeaderMap.h:
  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ResourceRequestBase.h:
  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::decode):

  • platform/network/SameSiteInfo.h:
  • platform/network/SocketStreamError.h:
  • platform/network/curl/ResourceRequest.h:
  • platform/network/soup/ResourceRequest.h:
  • platform/network/soup/ResourceResponse.h:
  • rendering/EventRegion.h:
  • workers/service/ServiceWorkerFetchResult.h:
  • Add WARN_UNUSED_RETURN to all decode functions.
9:38 AM Changeset in webkit [260077] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

YouTube sometimes navigates unexpectedly when invoking a context menu on a video link.
https://bugs.webkit.org/show_bug.cgi?id=210467
<rdar://problem/58841584>

Reviewed by Tim Horton.

Cancel any outstanding touches tracked by WebTouchEventsGestureRecognizer, so that we dispatch
touchcancel to the page instead of touchend, so that the page does not misinterpret
context menu invocation as a tap.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

9:19 AM Changeset in webkit [260076] by graouts@webkit.org
  • 10 edits in trunk/Source/WebCore

[Web Animations] Store an Element / PseudoId pair to define the KeyframeEffect target
https://bugs.webkit.org/show_bug.cgi?id=210491

Reviewed by Antti Koivisto.

In preparation for webkit.org/b/207290 where we will expose the pseudoElement JS API on KeyframeEffect we now
use an Element / PseudoId (m_target / m_pseudoId) pair to specify an effect's target. In the cases where it matters,
such as accessing the various animation collections exposed through Element and the KeyframeEffectStack, we now use
the new KeyframeEffect::targetElementOrPseudoElement() method to access the Element or PseudoElement targeted with
the Element / PseudoId pair.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeAnimation):

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::initialize):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::transitionDidComplete):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::forceLayoutIfNeeded):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):
(WebCore::KeyframeEffect::animationTimelineDidChange):
(WebCore::KeyframeEffect::updateEffectStackMembership):
(WebCore::KeyframeEffect::targetElementOrPseudoElement const):
(WebCore::KeyframeEffect::setTarget):
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::invalidate):
(WebCore::KeyframeEffect::getAnimatedStyle):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
(WebCore::KeyframeEffect::document const):
(WebCore::KeyframeEffect::renderer const):

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

(WebCore::KeyframeEffectStack::addEffect):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setEffectInternal):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::persist):

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::buildObjectForKeyframes):
(WebCore::InspectorAnimationAgent::requestEffectTarget):

9:16 AM Changeset in webkit [260075] by Lauro Moura
  • 5 edits in trunk/LayoutTests

[GTK][WPE] Layout test gardening

Unreviewed test gardening.

  • platform/gtk/TestExpectations:

Removed deprecated expectation.

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:

Updated expectations.

  • platform/wpe/TestExpectations: Updated several EME expectations with

correct bug number. A number of passing tests are also marked as PASS.

  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:

Updated expectations.

9:04 AM Changeset in webkit [260074] by Simon Fraser
  • 42 edits
    2 adds in trunk

[Async overflow scroll] Custom scrollbars on gmail don't show
https://bugs.webkit.org/show_bug.cgi?id=210438
<rdar://problem/61722541>

Reviewed by Tim Horton.

Source/WebCore:

Custom scrollbars painted into the backing store of the scrolling element, but that
might have become an empty "simple container layer" causing the scroll bars to not
be painted anywhere.

Fix by making compositing layers for custom scrollbars. This is better than giving
backing store to the scroller's element, because that might be huge.

Test: scrollbars/async-overflow-custom-scrollbar.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::requiresLayerForScrollbar const):
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):

  • rendering/RenderLayerBacking.h:

LayoutTests:

Layer tree dumps changed because of scrollbar and scroll corner layers.

  • compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
  • compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
  • compositing/layer-creation/clipping-scope/shared-layers-in-scroller-expected.txt:
  • compositing/overflow/overflow-auto-with-touch-expected.txt:
  • compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
  • compositing/overflow/textarea-scroll-touch-expected.txt:
  • compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt:
  • compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt:
  • fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt:
  • platform/mac/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • scrollbars/async-overflow-custom-scrollbar-expected.html: Added.
  • scrollbars/async-overflow-custom-scrollbar.html: Added.
  • tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-tile-coverage-expected.txt:
8:38 AM Changeset in webkit [260073] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, mark several MSE tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=210499

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:34 AM Changeset in webkit [260072] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK] Adapt to GdkVisual deprecation and removal
https://bugs.webkit.org/show_bug.cgi?id=210489

Reviewed by Adrian Perez de Castro.

No new tests needed.

Update the GdkVisual used to get the screen depth per component in
GTK3 and use default values for GTK4, as visuals as an abstraction
are gone from GTK4. The use in WK is very limited so there's no
much gain from peeking into backend-specific values.

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenDepth): Guard GdkVisual call and leave
default value for GTK4.
(WebCore::screenDepthPerComponent): Update API and ditto.

5:19 AM Changeset in webkit [260071] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Scrollbar handle has no minimum size
https://bugs.webkit.org/show_bug.cgi?id=209962

Reviewed by Adrian Perez de Castro.

Set a minimum thumb length.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::minimumThumbLength):

5:17 AM Changeset in webkit [260070] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] New scrollbar click behavior
https://bugs.webkit.org/show_bug.cgi?id=210002

Reviewed by Adrian Perez de Castro.

Use the same bahavior for mouse events when not rendering native scrollbars.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::handleMousePressEvent):

4:37 AM Changeset in webkit [260069] by Antti Koivisto
  • 47 edits in trunk

[CSS Selectors] Selectors Level 4 specificity calculation for pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=210419

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/is-expected.txt:

Source/WebCore:

CSS selector specification drafts at some point had a concept of "dynamic specificity" where
the specificity of a selector depended on the element it matched. It was only ever used with
:matches and :nth-child pseudo classes and has subsequently been removed. Selector specificity
can now always be computed statically.

There is a ton of code to support this obsolete feature. Remove it.

https://drafts.csswg.org/selectors-4/#specificity-rules

"The specificity of an :is(), :not(), or :has() pseudo-class is replaced by the specificity
of the most specific complex selector in its selector list argument.

Analogously, the specificity of an :nth-child() or :nth-last-child() selector is the specificity
of the pseudo class itself (counting as one pseudo-class selector) plus the specificity of the
most specific complex selector in its selector list argument (if any)."

  • css/html.css:

Reorganize a :matches rule into a selector list to keep the exact specificites.
It matters here to select between listbox and menulist correctly based on the 'size' and 'multiple' attributes.

  • css/CSSSelector.cpp:

(WebCore::selectorSpecificity):
(WebCore::maxSpecificity):
(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::simpleSelectorSpecificity const):

Also handle nth here.

(WebCore::CSSSelector::specificity const):
(WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity): Deleted.
(WebCore::functionalPseudoClassStaticSpecificity): Deleted.
(WebCore::staticSpecificityInternal): Deleted.
(WebCore::CSSSelector::staticSpecificity const): Deleted.

Rename to just computeSpecificity(), there is no other kind than static.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):
(WebCore::SelectorChecker::matchHostPseudoClass const):
(WebCore::SelectorChecker::matchRecursively const):
(WebCore::SelectorChecker::checkOne const):
(WebCore::SelectorChecker::matchSelectorList const):

SelectorChecker doesn't need to deal with specificity anymore.

  • css/SelectorChecker.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::constructFragmentsInternal):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):

Neither does SelectorCompiler.

  • cssjit/SelectorCompiler.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorMatches const):
(WebCore::SelectorDataList::selectorClosest const):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildObjectForSelectorHelper):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelector):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::hasDynamicSpecificity): Deleted.

  • inspector/InspectorStyleSheet.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

Switch to get the specificity from the selector instead of computing it during selector checking.

  • style/ElementRuleCollector.h:

LayoutTests:

Update specificity tests for static behavior, trying to also keep them useful.

  • fast/css/is-specificity-10-expected.html:
  • fast/css/is-specificity-10.html:
  • fast/css/is-specificity-2-expected.html:
  • fast/css/is-specificity-2.html:
  • fast/css/is-specificity-3-expected.html:
  • fast/css/is-specificity-3.html:
  • fast/css/is-specificity-4-expected.html:
  • fast/css/is-specificity-4.html:
  • fast/css/is-specificity-5.html:
  • fast/css/matches-specificity-10-expected.html:
  • fast/css/matches-specificity-10.html:
  • fast/css/matches-specificity-2-expected.html:
  • fast/css/matches-specificity-2.html:
  • fast/css/matches-specificity-3-expected.html:
  • fast/css/matches-specificity-3.html:
  • fast/css/matches-specificity-4-expected.html:
  • fast/css/matches-specificity-4.html:
  • fast/css/matches-specificity-5.html:
  • fast/css/nth-child-specificity-2-expected.html:
  • fast/css/nth-child-specificity-2.html:
  • fast/css/nth-child-specificity-3-expected.html:
  • fast/css/nth-child-specificity-3.html:
  • fast/css/nth-child-specificity-4-expected.html:
  • fast/css/nth-child-specificity-4.html:
  • fast/css/nth-last-child-specificity-2-expected.html:
  • fast/css/nth-last-child-specificity-2.html:
  • fast/css/nth-last-child-specificity-3-expected.html:
  • fast/css/nth-last-child-specificity-3.html:
  • fast/css/nth-last-child-specificity-4-expected.html:
  • fast/css/nth-last-child-specificity-4.html:
4:26 AM Changeset in webkit [260068] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Do not process RTC Network messages coming from NetworkProcess if LibWebRTCNetwork is not active
https://bugs.webkit.org/show_bug.cgi?id=207376
<rdar://problem/59238611>

Unreviewed.
Post-commit review update, change variable name to network.
No change of behavior.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

3:24 AM Changeset in webkit [260067] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GLIB] Fix race condition in FileMonitor implementation
https://bugs.webkit.org/show_bug.cgi?id=210483

Reviewed by Adrian Perez de Castro.

This is causing flaky timeouts when running resource load statistics layout tests. The problem is that we assume
FileMonitor has the last reference of the platform monitor and it's deleted on g_object_unref(), but GLib keeps
another reference that is released later on a different thread if the monitor is still active. We just need to
ensure we cancel the monitor before calling g_object_unref().

  • platform/FileMonitor.h:
  • platform/glib/FileMonitorGLib.cpp:

(WebCore::FileMonitor::~FileMonitor):
(WebCore::FileMonitor::didChange):
(WebCore::FileMonitor::cancel):

2:58 AM Changeset in webkit [260066] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][CDMProxy] Fix waitingForKey logic
https://bugs.webkit.org/show_bug.cgi?id=210437

Reviewed by Xabier Rodriguez-Calvar.

startedWaitingForKey() was incorrectly flagged. It needs to signal on
the 0->1 transition, here it was only signalling on N->N+1 where N>0.

Also break ASSERTs into separate statements, it makes it easier in a
crash dump to see which conjuct fired.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMInstanceProxy::startedWaitingForKey):
(WebCore::CDMInstanceProxy::stoppedWaitingForKey):

2:50 AM Changeset in webkit [260065] by Carlos Garcia Campos
  • 20 edits
    6 adds in trunk

[GTK] Bring back support for rendering scrollbars using the system appearance
https://bugs.webkit.org/show_bug.cgi?id=209805

Reviewed by Michael Catanzaro.

Source/WebCore:

Bring back ScrollbarThemeGtk, RenderThemeGadget and RenderThemeWidget (renamed as RenderThemeScrollbar),
including only the code needed to render the scrollbars. ScrollbarThemeGtk inherits from ScrollbarThemeAdwaita
that is used when system appearance is disabled.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/adwaita/ScrollbarThemeAdwaita.cpp:
  • platform/adwaita/ScrollbarThemeAdwaita.h:
  • platform/gtk/RenderThemeGadget.cpp: Added.

(WebCore::RenderThemeGadget::create):
(WebCore::createStyleContext):
(WebCore::appendElementToPath):
(WebCore::RenderThemeGadget::RenderThemeGadget):
(WebCore::RenderThemeGadget::marginBox const):
(WebCore::RenderThemeGadget::borderBox const):
(WebCore::RenderThemeGadget::paddingBox const):
(WebCore::RenderThemeGadget::contentsBox const):
(WebCore::RenderThemeGadget::color const):
(WebCore::RenderThemeGadget::backgroundColor const):
(WebCore::RenderThemeGadget::opacity const):
(WebCore::RenderThemeGadget::state const):
(WebCore::RenderThemeGadget::setState):
(WebCore::RenderThemeGadget::minimumSize const):
(WebCore::RenderThemeGadget::preferredSize const):
(WebCore::RenderThemeGadget::render):
(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget):
(WebCore::RenderThemeBoxGadget::preferredSize const):
(WebCore::RenderThemeScrollbarGadget::RenderThemeScrollbarGadget):
(WebCore::RenderThemeScrollbarGadget::renderStepper):

  • platform/gtk/RenderThemeGadget.h: Added.

(WebCore::RenderThemeGadget::context const):

  • platform/gtk/RenderThemeScrollbar.cpp: Added.

(WebCore::widgetMap):
(WebCore::RenderThemeScrollbar::getOrCreate):
(WebCore::RenderThemeScrollbar::clearCache):
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
(WebCore::RenderThemeScrollbar::stepper):

  • platform/gtk/RenderThemeScrollbar.h: Added.

(WebCore::RenderThemeScrollbar::scrollbar const):
(WebCore::RenderThemeScrollbar::contents const):
(WebCore::RenderThemeScrollbar::slider const):
(WebCore::RenderThemeScrollbar::trough const):

  • platform/gtk/ScrollbarThemeGtk.cpp: Added.

(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::themeChangedCallback):
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
(WebCore::ScrollbarThemeGtk::setUseSystemAppearance):
(WebCore::ScrollbarThemeGtk::themeChanged):
(WebCore::ScrollbarThemeGtk::updateThemeProperties):
(WebCore::ScrollbarThemeGtk::hasButtons):
(WebCore::scrollbarPartStateFlags):
(WebCore::widgetTypeForScrollbar):
(WebCore::contentsRectangle):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::ScrollbarThemeGtk::handleMousePressEvent):
(WebCore::ScrollbarThemeGtk::scrollbarThickness):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h: Added.

Source/WebKit:

Add WebKitWebContext:use-system-appearance-for-scrollbars property. It's enabled by default to keep backwards
compatibility.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode useSystemAppearanceForScrollbars.
(WebKit::WebProcessCreationParameters::decode): Decode useSystemAppearanceForScrollbars.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy): Copy m_useSystemAppearanceForScrollbars;

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_class_init):
(webkit_web_context_set_use_system_appearance_for_scrollbars):
(webkit_web_context_get_use_system_appearance_for_scrollbars):

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize useSystemAppearanceForScrollbars parameter.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Call setUseSystemAppearanceForScrollbars to set
useSystemAppearanceForScrollbars parameter.
(WebKit::WebProcess::setUseSystemAppearanceForScrollbars): Call ScrollbarThemeGtk::setUseSystemAppearance().

Tools:

Do not use system appearance for scrollbars in MiniBrowser and unit tests.

  • MiniBrowser/gtk/main.c:

(main):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

2:36 AM Changeset in webkit [260064] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a timer to AVVideoCaptureSource to verify reception of frames
https://bugs.webkit.org/show_bug.cgi?id=210335

Reviewed by Eric Carlson.

Count the number of frames being captured.
Add a timer repeating every 3 seconds.
Timer starts/stops based on whether the session is running/is interrupted.
If the number of frames did not increase, fail the source.
Manually tested.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::captureFailed):
Explicitly call stop() instead of just setting m_isProducingData.
This ensures we release all resources and that we may not restart capturing after captureFailed().

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::verifyIsCapturing):
(WebCore::AVVideoCaptureSource::updateVerifyCapturingTimer):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
(WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):

2:30 AM Changeset in webkit [260063] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

WebSocketChannel should remove itself from its manager map
https://bugs.webkit.org/show_bug.cgi?id=210424

Reviewed by Alex Christensen.

WebSocketChannelManager was never removing any entry from its map.
To fix this, the manager is now keeping a WeakPtr to each channel.
When the channel is destroyed, it will remove itself from its channel manager.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::~WebSocketChannel):

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Network/WebSocketChannelManager.cpp:

(WebKit::WebSocketChannelManager::addChannel):
(WebKit::WebSocketChannelManager::createWebSocketChannel): Deleted.

  • WebProcess/Network/WebSocketChannelManager.h:

(WebKit::WebSocketChannelManager::removeChannel):

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createWebSocketChannel):

12:56 AM Changeset in webkit [260062] by Nikolas Zimmermann
  • 50 edits
    4 copies
    50 adds in trunk/LayoutTests

[Gtk] Update pixel tests baseline for all tests containing or referencing SVGs (except WPT)
https://bugs.webkit.org/show_bug.cgi?id=210282

Rubber-stamped by Žan Doberšek.

This extends the work from webkit.org/b/209136 to have a pixel test baseline
for all layout tests, even outside the svg/ directory, that contain or
reference SVGs.

This is mainly useful for developing webkit.org/b/90738, to ease
comparison of the SVG PoC branch with vanilla WebKit. In future we
should rather convert more and more tests to reftests instead of
relying on pixel tests - which SVG does for many features right now.

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/blending/background-blend-mode-image-svg-expected.png: Added.
  • platform/gtk/css3/blending/background-blend-mode-svg-color-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-color-burn-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-color-burn-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-color-dodge-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-color-dodge-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-darken-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-darken-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-difference-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-difference-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-exclusion-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-exclusion-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-hard-light-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-lighten-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-lighten-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-multiply-alpha-expected.png:
  • platform/gtk/css3/blending/svg-blend-multiply-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-multiply-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-overlay-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-overlay-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-screen-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-screen-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-soft-light-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-soft-light-expected.txt: Added.
  • platform/gtk/css3/filters/effect-reference-composite-expected.png:
  • platform/gtk/css3/filters/effect-reference-composite-hw-expected.png:
  • platform/gtk/css3/filters/effect-reference-external-expected.png: Added.
  • platform/gtk/css3/filters/effect-reference-hw-expected.png:
  • platform/gtk/css3/filters/effect-reference-ordering-expected.png:
  • platform/gtk/css3/filters/effect-reference-ordering-hw-expected.png:
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-expected.txt: Added.
  • platform/gtk/css3/shapes/spec-examples/support/rounded-triangle-expected.png: Added.
  • platform/gtk/css3/shapes/spec-examples/support/rounded-triangle-expected.txt: Added.
  • platform/gtk/fast/backgrounds/animated-svg-as-mask-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-expected.txt: Added.
  • platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.txt: Added.
  • platform/gtk/fast/harness/render-tree-as-text-options-expected.png: Added.
  • platform/gtk/imported/w3c/canvas/2d.fillStyle.parse.svg-1-expected.png: Added.
  • platform/gtk/imported/w3c/canvas/2d.fillStyle.parse.svg-2-expected.png: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/text-tselect-02-f-expected.png:
  • platform/gtk/svg/as-background-image/svg-as-background-4-expected.png:
  • platform/gtk/svg/as-background-image/svg-as-background-4-expected.txt: Added.
  • platform/gtk/svg/custom/circular-marker-reference-2-expected.png:
  • platform/gtk/svg/custom/circular-marker-reference-2-expected.txt: Added.
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt:
  • platform/gtk/svg/custom/non-circular-marker-reference-expected.png:
  • platform/gtk/svg/custom/non-circular-marker-reference-expected.txt: Added.
  • platform/gtk/svg/custom/text-clip-expected.png:
  • platform/gtk/svg/filters/filter-hidden-content-expected.png:
  • platform/gtk/svg/text/foreignObject-text-clipping-bug-expected.png:
  • platform/gtk/svg/text/select-textLength-spacing-squeeze-4-expected.png:
  • platform/gtk/svg/text/select-textLength-spacing-stretch-4-expected.png:
  • platform/gtk/svg/text/select-textLength-spacingAndGlyphs-stretch-4-expected.png:
  • platform/gtk/svg/text/select-x-list-4-expected.png:
  • platform/gtk/svg/text/select-x-list-with-tspans-4-expected.png:
  • platform/gtk/svg/text/selection-tripleclick-expected.png:
  • platform/gtk/svg/text/text-align-01-b-expected.png:
  • platform/gtk/svg/text/text-align-02-b-expected.png:
  • platform/gtk/svg/text/text-align-03-b-expected.png:
  • platform/gtk/svg/text/text-align-04-b-expected.png:
  • platform/gtk/svg/text/text-align-05-b-expected.png:
  • platform/gtk/svg/text/text-align-06-b-expected.png:
  • platform/gtk/svg/text/text-deco-01-b-expected.png:
  • platform/gtk/svg/text/text-fonts-01-t-expected.png:
  • platform/gtk/svg/text/text-fonts-02-t-expected.png:
  • platform/gtk/svg/text/text-intro-05-t-expected.png:
  • platform/gtk/svg/text/text-path-01-b-expected.png:
  • platform/gtk/svg/text/text-spacing-01-b-expected.png:
  • platform/gtk/svg/text/text-text-01-b-expected.png:
  • platform/gtk/svg/text/text-text-03-b-expected.png:
  • platform/gtk/svg/text/text-text-05-t-expected.png:
  • platform/gtk/svg/text/text-text-07-t-expected.png:
  • platform/gtk/svg/text/text-text-08-b-expected.png:
  • platform/gtk/svg/text/text-tref-01-b-expected.png:
  • platform/gtk/svg/text/text-tselect-01-b-expected.png:
  • platform/gtk/svg/text/text-tselect-02-f-expected.png:
  • platform/gtk/svg/text/text-tspan-01-b-expected.png:
  • platform/gtk/svg/text/text-ws-01-t-expected.png:
  • platform/gtk/svg/text/text-ws-02-t-expected.png:
12:40 AM Changeset in webkit [260061] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add logging in case of WebRTC socket error
https://bugs.webkit.org/show_bug.cgi?id=210428

Reviewed by Eric Carlson.

Add some release logging in case of error when sending, setting option or closing a socket.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::sendTo):
(WebKit::LibWebRTCSocketClient::close):
(WebKit::LibWebRTCSocketClient::setOption):

12:06 AM Changeset in webkit [260060] by commit-queue@webkit.org
  • 50 edits in trunk

Unreviewed, reverting r260024.
https://bugs.webkit.org/show_bug.cgi?id=210480

Regressed performance due to loss of specificity caching
(Requested by anttik on #webkit).

Reverted changeset:

"[CSS Selectors] Selectors Level 4 specificity calculation for
pseudo classes"
https://bugs.webkit.org/show_bug.cgi?id=210419
https://trac.webkit.org/changeset/260024

Apr 13, 2020:

10:32 PM Changeset in webkit [260059] by commit-queue@webkit.org
  • 22 edits in trunk/Source

Unreviewed, reverting r260052.
https://bugs.webkit.org/show_bug.cgi?id=210479

Breaks iOS tests, needs more work (Requested by smfr on
#webkit).

Reverted changeset:

"Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for
non-Cocoa platforms"
https://bugs.webkit.org/show_bug.cgi?id=210460
https://trac.webkit.org/changeset/260052

10:12 PM Changeset in webkit [260058] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

[GTK4] Use ThemeAdwaita instead of ThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=210334

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • platform/adwaita/ThemeAdwaita.cpp: Build the Theme::singleton() factory also with USE(GTK4).
  • platform/gtk/ThemeGtk.cpp: Conditionally build if !USE(GTK4).

(WebCore::ThemeGtk::ensurePlatformColors const): Add deprecation ignore guards.

  • platform/gtk/ThemeGtk.h: Conditionally build if !USE(GTK4).
8:05 PM Changeset in webkit [260057] by Alexey Shvayka
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION (r259587): bterlson/eshost throws during init in strict mode
https://bugs.webkit.org/show_bug.cgi?id=210470

Reviewed by Ross Kirsling.

This change makes $262.IsHTMLDDA of JSC shell a CustomValue, allowing it to be reassigned
and restoring compatibility with any version of https://github.com/bterlson/eshost.

Since putDirectCustomAccessor() is now used instead of putGetter(), scope exception assert
is no longer needed and can be safely removed, as well as JSObject::putGetter() export.

  • jsc.cpp:
  • runtime/JSObject.h:
7:59 PM Changeset in webkit [260056] by Simon Fraser
  • 4 edits
    4 adds in trunk

[Async overflow] Get scroll-snap working with async overflow scrolling on macOS
https://bugs.webkit.org/show_bug.cgi?id=210471
<rdar://problem/61643199>

Reviewed by Wenson Hsieh.

Source/WebCore:

Obey the FIXME and move scroll-snap related code to the delegate so that it works for
both frame and overflow nodes.

Tests: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::convertToLayoutUnits): Deleted.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::convertToLayoutUnits):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):

LayoutTests:

Clone some overflow scroll-snap tests, and enable async scrolling for them.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html: Added.
7:40 PM Changeset in webkit [260055] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not cache definite height against perpendicular flex items.
https://bugs.webkit.org/show_bug.cgi?id=207603
<rdar://problem/59135373>

Reviewed by Simon Fraser.

Source/WebCore:

RenderFlexibleBox::m_hasDefiniteHeight should not be set when the child we check against is a perpendicular item
because a perpendicular box's height is resolved against the containing block's width.

Test: fast/flexbox/unresolved-height-percentage-crash.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):

LayoutTests:

  • fast/flexbox/unresolved-height-percentage-crash-expected.txt: Added.
  • fast/flexbox/unresolved-height-percentage-crash.html: Added.
6:40 PM Changeset in webkit [260054] by ddkilzer@apple.com
  • 17 edits in trunk/Source

Replace use of Checked<size_t, RecordOverflow> with CheckedSize
<https://webkit.org/b/210461>

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::deprecatedReportExtraMemorySlowCase):
(JSC::Heap::extraMemorySize):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::reportExtraMemoryVisited):

  • heap/SlotVisitor.h:
  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBuffer::expandCapacity):

Source/WebCore:

  • platform/audio/ios/AudioFileReaderIOS.cpp:

(WebCore::createAudioBufferList):

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::calculateBackendSize):

  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::createDirect2DImageSurfaceWithData):

  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):

Source/WebKit:

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::messageSize):

  • Platform/IPC/cocoa/MachMessage.h:
  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::increaseBufferedAmount):

Source/WTF:

  • wtf/FastMalloc.cpp:

(WTF::tryFastCalloc):

  • wtf/Gigacage.cpp:

(Gigacage::tryMallocArray):

  • wtf/glib/SocketConnection.cpp:

(WTF::SocketConnection::sendMessage):

6:30 PM Changeset in webkit [260053] by Devin Rousso
  • 2 edits in trunk/Tools

REGRESSION (r259900) : Speedometer failing on Catalina-Release-WK2-Perf bot
https://bugs.webkit.org/show_bug.cgi?id=210442
<rdar://problem/61727169>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

5:47 PM Changeset in webkit [260052] by Simon Fraser
  • 22 edits in trunk/Source

Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for non-Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=210460

Reviewed by Tim Horton.

Source/WebCore:

Wrap all custom scrollbar and custom scroll corner code in ENABLE(CUSTOM_SCROLLBARS).

  • page/FrameView.cpp:

(WebCore::FrameView::createScrollbar):
(WebCore::FrameView::updateScrollCorner):

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

(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::createScrollbar):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock const):

  • rendering/RenderObject.h:
  • rendering/RenderScrollbar.cpp:
  • rendering/RenderScrollbar.h:
  • rendering/RenderScrollbarPart.cpp:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderScrollbarTheme.cpp:
  • rendering/RenderScrollbarTheme.h:
  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::createScrollbar):

  • rendering/RenderTextControlSingleLine.cpp:
  • style/StyleResolver.cpp:

Source/WTF:

Define ENABLE_CUSTOM_SCROLLBARS for PLATFORM(MAC) and other non-Cocoa platforms.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
5:32 PM Changeset in webkit [260051] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style should warn about attributes that appear after function definitions
<https://webkit.org/b/210459>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_FunctionState.attributes_after_definition): Add.

  • Return list of attributes that appear after a function definition.

(check_function_definition):

  • Add new check for attributes that appear after a function definition.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_decode_functions_missing_warn_unused_return):

  • Update test to fix new warning.

(CppStyleTest.test_function_readability_for_attributes): Add.

  • Add tests.
4:48 PM Changeset in webkit [260050] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, update expectations after r260016
https://bugs.webkit.org/show_bug.cgi?id=210466

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:42 PM Changeset in webkit [260049] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Clean up more resources during WebGLLayer teardown
https://bugs.webkit.org/show_bug.cgi?id=210222

Patch by Kenneth Russell <kbr@chromium.org> on 2020-04-13
Reviewed by Dean Jackson.

Release OpenGL resources just before destruction of the underlying
OpenGL context.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

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

(-[WebGLLayer releaseGLResources]):
(-[WebGLLayer dealloc]): Deleted.

3:49 PM Changeset in webkit [260048] by Russell Epstein
  • 1 copy in tags/Safari-609.2.6

Tag Safari-609.2.6.

3:43 PM Changeset in webkit [260047] by Russell Epstein
  • 3 edits in branches/safari-609-branch

Cherry-pick r257595. rdar://problem/61735200

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=208330

Reviewed by Don Olmstead.

Set framework headers directory for AppleWin build.

  • Source/cmake/target/TargetJavaScriptCore.cmake:
  • Source/cmake/target/TargetWTF.cmake:

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

3:41 PM Changeset in webkit [260046] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

3:13 PM Changeset in webkit [260045] by Noam Rosenthal
  • 7 edits in trunk/Source/WebCore

Background images should figure into visually non empty heuristic
https://bugs.webkit.org/show_bug.cgi?id=208501

Reviewed by Simon Fraser.

This makes the visually non-empty heuristic treat background images the same
as it treats regular images. This is in line with first contentful paint spec in paint timing:
https://w3c.github.io/paint-timing/.

Note that the pixel count is computed based on the image size rather than the box size, as the box size might not be known at this time.
This is equivalent to the pixel reporting done for RenderImage.

Border-images and masks are excluded, as per the spec.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::imageChanged):

Call incrementVisuallyNonEmptyPixelCountIfNeeded for background images

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderBox.cpp:

(WebCore::RenderElement::incrementVisuallyNonEmptyPixelCountIfNeeded):

  • rendering/RenderBox.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::incrementVisuallyNonEmptyPixelCountIfNeeded): Deleted.

  • rendering/RenderImage.h:

Moved incrementVisuallyNonEmptyPixelCountIfNeeded from RenderImage to RenderElement

3:07 PM Changeset in webkit [260044] by Alan Coon
  • 1 copy in tags/Safari-610.1.9.1

Tag Safari-610.1.9.1.

3:05 PM Changeset in webkit [260043] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r259843): "Missing Plug-In" when dragging an image into Mail Compose
https://bugs.webkit.org/show_bug.cgi?id=210458
<rdar://problem/61735361>

Reviewed by Wenson Hsieh.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPlugin):
r259843 changed this code from making a dictionary with a set of key->object mappings
to making a dictionary with an array of keys as its only key and an array of objects
as that key's value. Not quite the same thing.

Go back to dictionaryWithObjects:forKeys:.

3:02 PM Changeset in webkit [260042] by Alan Coon
  • 1 copy in tags/Safari-609.2.5

Tag Safari-609.2.5.

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

[iOS] Update message filters in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=210455

Reviewed by Geoffrey Garen.

Update message filters in the WebContent sandbox on iOS with required messages.

No new tests, since this patch should not introduce a behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:37 PM Changeset in webkit [260040] by Kate Cheney
  • 8 edits in trunk

http/tests/in-app-browser-privacy/app-bound-domain.html is a constant failure on iOS
https://bugs.webkit.org/show_bug.cgi?id=210344
<rdar://problem/61583925>

Reviewed by Brent Fulgham.

Tools:

This patch creates a new TestOption parameter for enabling In-App
Browser Privacy because its NSUserDefaults key is not set using the
internal or experimental keywords. It enables this flag for
WebKitTestRunner if the option is set (and disables it otherwise).

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformAddTestOptions const):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Update comment to match changes in TestOptions.

  • http/tests/in-app-browser-privacy/app-bound-domain.html:
  • http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html:
2:24 PM Changeset in webkit [260039] by Jacob Uphoff
  • 2 edits
    2 deletes in trunk/LayoutTests

[ macOS ] REGRESSION(r260024) inspector/css/selector-dynamic-specificity.html is constantly failing
https://bugs.webkit.org/show_bug.cgi?id=210450

Removing a test that is no longer supported.

Unreviewed test gardening.

  • inspector/css/selector-dynamic-specificity-expected.txt: Removed.
  • inspector/css/selector-dynamic-specificity.html: Removed.
  • platform/mac/TestExpectations:
1:59 PM Changeset in webkit [260038] by ysuzuki@apple.com
  • 7 edits
    10 adds in trunk

module's default cross-origin value should be "anonymous"
https://bugs.webkit.org/show_bug.cgi?id=210326

Reviewed by Sam Weinig.

Source/WebCore:

Tests: http/tests/security/cookie-module-import-propagate.html

http/tests/security/cookie-module-import.html
http/tests/security/cookie-module-propagate.html
http/tests/security/cookie-module.html

The original spec was using "omit" crossorigin for modules when crossorigin is not set / empty.
However, the spec is changed to sending requests with "same-origin" credentials ("anonymous" crossorigin mode)
by default. We should follow it.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElementCachedScriptFetcher.cpp:

(WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const):

  • dom/ScriptElementCachedScriptFetcher.h:
  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script): While this is not directly related to this patch, added new tests found that we are returning
null StringView if the resource is zero byte. This totally works, but JSC::Parser has assertion that this is non-null
StringView. For zero byte CachedScript resource, we should return non-null empty StringView instead.

LayoutTests:

  • http/tests/security/cookie-module-expected.txt: Added.
  • http/tests/security/cookie-module-import-expected.txt: Added.
  • http/tests/security/cookie-module-import-propagate-expected.txt: Added.
  • http/tests/security/cookie-module-import-propagate.html: Added.
  • http/tests/security/cookie-module-import.html: Added.
  • http/tests/security/cookie-module-propagate-expected.txt: Added.
  • http/tests/security/cookie-module-propagate.html: Added.
  • http/tests/security/cookie-module.html: Added.
  • http/tests/security/resources/cookie-protected-script.php: Added.
  • http/tests/security/resources/module-nest-import.php: Added.
1:40 PM Changeset in webkit [260037] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add roblox.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=210452
<rdar://problem/58859657>

Reviewed by Zalan Bujtas.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):

1:39 PM Changeset in webkit [260036] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Add Apple's Reality files to AR System Preview
https://bugs.webkit.org/show_bug.cgi?id=210449
<rdar://problem/61732793>

Reviewed by Sam Weinig.

Add support for Apples .reality AR files - both the vendor MIME
Type and our UTI. These have been supported by WebKitAdditions for
a while. Move them into Open Source.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):

  • platform/network/mac/UTIUtilities.mm:

(WebCore::UTIFromUnknownMIMEType):

12:42 PM Changeset in webkit [260035] by wenson_hsieh@apple.com
  • 6 edits in trunk/Source/WebKit

Remove the "IgnoreViewportScalingConstraints" debug WebKit feature
https://bugs.webkit.org/show_bug.cgi?id=210440

Reviewed by Tim Horton.

Remove the internal WebKit2 feature; this was introduced around iOS 9 to unconditionally force pages to shrink
to fit if they specified a responsive viewport, to avoid horizontal scrolling.

Nowadays, this behavior is instead controlled by the -[WKWebView _allowsViewportShrinkToFit] SPI, which
ensures that this shrink-to-fit preference is updated in sync with the visible content rect update lifecycle; it
is currently used by Safari to scale web pages down to fit in smaller multitasking viewports.

In contrast, this preference has no internal clients. Instead of maintaining two different ways for clients to
control shrink-to-fit behavior, remove support for the preference and make it a no-op.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

Remove this redundant mechanism for shrinking web pages down to fit.

(WebKit::WebPage::updateVisibleContentRects):

12:30 PM Changeset in webkit [260034] by pvollan@apple.com
  • 11 edits
    4 deletes in trunk

[iOS] Remove unused UTType swizzler code
https://bugs.webkit.org/show_bug.cgi?id=210435

Unreviewed rollout of r258120.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/UTTypeRecordSwizzler.h: Removed.
  • platform/cocoa/UTTypeRecordSwizzler.mm: Removed.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NSUTTypeRecordSPI.h: Removed.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/UTIFromTag.mm: Removed.
12:19 PM Changeset in webkit [260033] by msaboff@apple.com
  • 4 edits
    1 add in trunk

[YARR] Allow for Unicode named capture group identifiers in non-Unicode regular expressions
https://bugs.webkit.org/show_bug.cgi?id=210309

Reviewed by Ross Kirsling.

JSTests:

  • stress/regexp-named-capture-groups.js: New test added.

(shouldBe):
(shouldThrowInvalidGroupSpecifierName):

  • test262/expectations.yaml: Updated for now failing tests.

When test262 gets updated for this change, this can be reverted.

Source/JavaScriptCore:

Update YARR pattern processing to allow for non-BMP unicode identifier characters in named capture groups.

This change was discussed and approved at the March/April 2020 TC-39 meeting.
See https://github.com/tc39/ecma262/pull/1869 for the discussion and change.

Updated tryConsumeUnicodeEscape() to allow for unicode escapes in non-unicode flagged regex's.
Added the same support to consumePossibleSurrogatePair().

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::consumePossibleSurrogatePair):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::tryConsumeUnicodeEscape):
(JSC::Yarr::Parser::tryConsumeIdentifierCharacter):

12:02 PM Changeset in webkit [260032] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, WebRTC flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210444

Unreviewed gardening.

  • platform/gtk/TestExpectations:
11:15 AM Changeset in webkit [260031] by Kate Cheney
  • 36 edits in trunk/Source/WebKit

Turn all instances of NavigatingToAppBoundDomain into Optionals
https://bugs.webkit.org/show_bug.cgi?id=210363
<rdar://problem/61612861>

Reviewed by Brent Fulgham.

NavigatingToAppBoundDomain should be an Optional when passed to the
Network Process to distinguish the case of an empty app-bound domain
list versus an actual app-bound domain navigation. An empty list and
an app-bound navigation should have the same behavior in NetworkSessionCocoa,
but we will need distinguished behavior in the future.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/DownloadManager.h:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):
(WebKit::NetworkProcess::downloadRequest):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/cache/AsyncRevalidation.cpp:

(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):

  • NetworkProcess/cache/AsyncRevalidation.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

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

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

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

(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
We should treat an empty WKAppBoundDomains list like an app-bound domain
navigation in the network session, so this sets
NavigatingToAppBoundDomain to Yes if the Optional is WTF::nullopt.

(WebKit::NetworkSessionCocoa::appBoundSession): Deleted.
(WebKit::NetworkSessionCocoa::isolatedSession): Deleted.
(WebKit::NetworkSessionCocoa::hasIsolatedSession const): Deleted.
(WebKit::NetworkSessionCocoa::clearIsolatedSessions): Deleted.
(WebKit::NetworkSessionCocoa::invalidateAndCancel): Deleted.
(WebKit::NetworkSessionCocoa::clearCredentials): Deleted.
(WebKit::certificatesMatch): Deleted.
(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost): Deleted.
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): Deleted.
(WebKit::NetworkSessionCocoa::deviceManagementPolicyMonitor): Deleted.
(WebKit::NetworkSessionCocoa::createWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::addWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::removeWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::hostNamesWithAlternativeServices const): Deleted.
(WebKit::NetworkSessionCocoa::deleteAlternativeServicesForHostNames): Deleted.
(WebKit::NetworkSessionCocoa::clearAlternativeServices): Deleted.

  • Shared/LoadParameters.h:
  • Shared/PolicyDecision.h:

(WebKit::PolicyDecision::decode):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
Set this to WTF::nullopt instead of NavigatingToAppBoundDomain::Yes
so the two cases are distinguished.

(WebKit::WebPageProxy::isNavigatingToAppBoundDomainTesting):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isNavigatingToAppBoundDomain const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/WebPage/WebFrame.cpp:

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

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadDataImpl):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
(WebKit::WebPage::isNavigatingToAppBoundDomain const):

10:57 AM Changeset in webkit [260030] by commit-queue@webkit.org
  • 7 edits
    18 deletes in trunk

Unreviewed, reverting r260003.
https://bugs.webkit.org/show_bug.cgi?id=210441

Avoid using basic-authentication for tests (Requested by

yusukesuzuki on #webkit).

Reverted changeset:

"module's default cross-origin value should be "anonymous""
https://bugs.webkit.org/show_bug.cgi?id=210326
https://trac.webkit.org/changeset/260003

10:56 AM Changeset in webkit [260029] by Andres Gonzalez
  • 3 edits in trunk/Tools

Make WTR::AccessibilityUIElement methods run on AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=210392

Reviewed by Chris Fleizach.

In order to test accessibility isolated tree mode, it is necessary to
run WTR::AccessibilityUIElement methods on the AX secondary thread. This
change uses the functionality built-in AccessibilityController to
dispatch the calls to WebAccessibilityObjectWrapper to the AX thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::supportedAttributes):
(WTR::attributeValue):
(WTR::descriptionOfValue):
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getUIElementsWithAttribute const):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::elementForAttribute const):
(WTR::AccessibilityUIElement::elementForAttributeAtIndex const):
(WTR::AccessibilityUIElement::linkedUIElementAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::disclosedRowAtIndex):
(WTR::AccessibilityUIElement::rowAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::selectedRowAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::disclosedByRow):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

10:56 AM Changeset in webkit [260028] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] test262-runner fails to run with WEBKIT_JHBUILD enabled
https://bugs.webkit.org/show_bug.cgi?id=210430

Make sure we check the WEBKIT_JHBUILD env var directly to avoid
requiring webkitdirs early and messing up Runner.pm compilation.

Reviewed by Philippe Normand.

  • Scripts/test262-runner:
10:53 AM Changeset in webkit [260027] by ddkilzer@apple.com
  • 6 edits in trunk/Source

Fix clang static analyzer warnings about unused instance variables in WebIconDatabase, WKView
<https://webkit.org/b/210427>

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKView.h:

(WKView._unused):

  • Use WK_UNUSED_INSTANCE_VARIABLE to ignore unused instance variable.

Source/WebKitLegacy/mac:

  • Misc/WebIconDatabase.h:

(WebIconDatabase._private):

  • Use WK_UNUSED_INSTANCE_VARIABLE to ignore unused instance variable.

Source/WTF:

  • wtf/Compiler.h:

(WK_UNUSED_INSTANCE_VARIABLE): Add.

10:52 AM Changeset in webkit [260026] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ macOS wk1 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207160

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:48 AM Changeset in webkit [260025] by ddkilzer@apple.com
  • 68 edits in trunk

Add WARN_UNUSED_RETURN to decode methods in Source/WebKit
<https://webkit.org/b/210423>
<rdar://problem/61715582>

Reviewed by Alex Christensen.

Source/WebKit:

  • GPUProcess/GPUProcessCreationParameters.h:
  • NetworkProcess/Downloads/DownloadID.h:

(IPC::ArgumentCoder<WebKit::DownloadID>::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cache/NetworkCacheKey.h:

(WebKit::NetworkCache::DataKey::decode):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):

  • Platform/SharedMemory.h:
  • PluginProcess/PluginCreationParameters.h:
  • Shared/API/APIData.h:
  • Shared/API/APIError.h:
  • Shared/API/APIFrameHandle.h:
  • Shared/API/APIGeometry.h:
  • Shared/API/APINumber.h:

(API::Number::decode):

  • Shared/API/APIPageGroupHandle.h:
  • Shared/API/APIPageHandle.h:
  • Shared/API/APIURL.h:

(API::URL::decode):

  • Shared/API/APIURLRequest.h:
  • Shared/API/APIURLResponse.h:
  • Shared/API/Cocoa/RemoteObjectInvocation.h:
  • Shared/Cocoa/ArgumentCodersCocoa.h:
  • Shared/ContextMenuContextData.h:
  • Shared/Databases/IndexedDB/WebIDBResult.h:
  • Shared/EditorState.h:
  • Shared/FocusedElementInformation.h:
  • Shared/FontInfo.h:
  • Shared/LayerTreeContext.h:
  • Shared/LoadParameters.h:
  • Shared/OptionalCallbackID.h:

(WebKit::OptionalCallbackID::decode):

  • Shared/PlatformPopupMenuData.h:
  • Shared/Plugins/PluginProcessCreationParameters.h:
  • Shared/PrintInfo.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:
  • Shared/SessionState.h:
  • Shared/ShareableBitmap.h:
  • Shared/ShareableResource.h:
  • Shared/TouchBarMenuData.h:
  • Shared/UpdateInfo.h:
  • Shared/VisibleContentRectUpdateInfo.h:
  • Shared/WebEvent.h:
  • Shared/WebHitTestResultData.h:
  • Shared/WebNavigationDataStore.h:

(WebKit::WebNavigationDataStore::decode):

  • Shared/WebPreferencesStore.h:
  • Shared/WebProcessCreationParameters.h:
  • Shared/WebsiteData/WebsiteData.h:
  • Shared/cf/ArgumentCodersCF.h:
  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::decodeImage):
(IPC::decodeGKeyFile):

  • Shared/gtk/ArgumentCodersGtk.h:
  • Shared/gtk/WebSelectionData.h:
  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationRequest.h:
  • Shared/mac/ColorSpaceData.h:
  • Shared/mac/ObjCObjectGraph.h:
  • Shared/mac/SecItemRequestData.h:
  • Shared/mac/WebGestureEvent.h:
  • UIProcess/Cocoa/SessionStateCoding.h:
  • UIProcess/LegacySessionStateCoding.h:
  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeSessionHistoryEntryData):
(WebKit::decodeSessionHistoryEntry):
(WebKit::decodeSessionHistoryEntries):
(WebKit::decodeV0SessionHistory):
(WebKit::decodeV1SessionHistory):
(WebKit::decodeSessionHistory):

  • WebProcess/GPU/GPUProcessConnectionInfo.h:

(WebKit::GPUProcessConnectionInfo::decode):

  • WebProcess/GPU/media/RemoteAudioBusData.h:

(WebKit::RemoteAudioBusData::decode):

  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
  • WebProcess/Network/NetworkProcessConnectionInfo.h:

(WebKit::NetworkProcessConnectionInfo::decode):

  • WebProcess/Plugins/Plugin.h:
  • Add WARN_UNUSED_RETURN to all decode functions.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_function_definition):

  • Add check for platformDecode() methods.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest):

  • Add tests for platformDecode() methods.
10:45 AM Changeset in webkit [260024] by Antti Koivisto
  • 50 edits in trunk

[CSS Selectors] Selectors Level 4 specificity calculation for pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=210419

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/is-expected.txt:

Source/WebCore:

CSS selector specification drafts at some point had a concept of "dynamic specificity" where
the specificity of a selector depended on the element it matched. It was only ever used with
:matches and :nth-child pseudo classes and has subsequently been removed. Selector specificity
can now always be computed statically.

There is a ton of code to support this obsolete feature. Remove it.

https://drafts.csswg.org/selectors-4/#specificity-rules

"The specificity of an :is(), :not(), or :has() pseudo-class is replaced by the specificity
of the most specific complex selector in its selector list argument.

Analogously, the specificity of an :nth-child() or :nth-last-child() selector is the specificity
of the pseudo class itself (counting as one pseudo-class selector) plus the specificity of the
most specific complex selector in its selector list argument (if any)."

  • css/html.css:

Reorganize a :matches rule into a selector list to keep the exact specificites.
It matters here to select between listbox and menulist correctly based on the 'size' and 'multiple' attributes.

  • css/CSSSelector.cpp:

(WebCore::selectorSpecificity):
(WebCore::maxSpecificity):
(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::simpleSelectorSpecificity const):

Also handle nth here.

(WebCore::CSSSelector::specificity const):
(WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity): Deleted.
(WebCore::functionalPseudoClassStaticSpecificity): Deleted.
(WebCore::staticSpecificityInternal): Deleted.
(WebCore::CSSSelector::staticSpecificity const): Deleted.

Rename to just computeSpecificity(), there is no other kind than static.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):
(WebCore::SelectorChecker::matchHostPseudoClass const):
(WebCore::SelectorChecker::matchRecursively const):
(WebCore::SelectorChecker::checkOne const):
(WebCore::SelectorChecker::matchSelectorList const):

SelectorChecker doesn't need to deal with specificity anymore.

  • css/SelectorChecker.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::constructFragmentsInternal):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):

Neither does SelectorCompiler.

  • cssjit/SelectorCompiler.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorMatches const):
(WebCore::SelectorDataList::selectorClosest const):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildObjectForSelectorHelper):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelector):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::hasDynamicSpecificity): Deleted.

  • inspector/InspectorStyleSheet.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

Switch to get the specificity from the selector instead of computing it during selector checking.

  • style/ElementRuleCollector.h:
  • style/RuleData.cpp:

(WebCore::Style::computeMatchesBasedOnRuleHash):
(WebCore::Style::RuleData::RuleData):
(WebCore::Style::computeMatchBasedOnRuleHash): Deleted.

  • style/RuleData.h:

(WebCore::Style::RuleData::matchesBasedOnRuleHash const):
(WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted.

This can be a bit instead of an enum since there is no need to communicate specificity.

LayoutTests:

Update specificity tests for static behavior, trying to also keep them useful.

  • fast/css/is-specificity-10-expected.html:
  • fast/css/is-specificity-10.html:
  • fast/css/is-specificity-2-expected.html:
  • fast/css/is-specificity-2.html:
  • fast/css/is-specificity-3-expected.html:
  • fast/css/is-specificity-3.html:
  • fast/css/is-specificity-4-expected.html:
  • fast/css/is-specificity-4.html:
  • fast/css/is-specificity-5.html:
  • fast/css/matches-specificity-10-expected.html:
  • fast/css/matches-specificity-10.html:
  • fast/css/matches-specificity-2-expected.html:
  • fast/css/matches-specificity-2.html:
  • fast/css/matches-specificity-3-expected.html:
  • fast/css/matches-specificity-3.html:
  • fast/css/matches-specificity-4-expected.html:
  • fast/css/matches-specificity-4.html:
  • fast/css/matches-specificity-5.html:
  • fast/css/nth-child-specificity-2-expected.html:
  • fast/css/nth-child-specificity-2.html:
  • fast/css/nth-child-specificity-3-expected.html:
  • fast/css/nth-child-specificity-3.html:
  • fast/css/nth-child-specificity-4-expected.html:
  • fast/css/nth-child-specificity-4.html:
  • fast/css/nth-last-child-specificity-2-expected.html:
  • fast/css/nth-last-child-specificity-2.html:
  • fast/css/nth-last-child-specificity-3-expected.html:
  • fast/css/nth-last-child-specificity-3.html:
  • fast/css/nth-last-child-specificity-4-expected.html:
  • fast/css/nth-last-child-specificity-4.html:
10:41 AM Changeset in webkit [260023] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

KeyedDecoder functions in ResourceLoadStatistics.{cpp,h} should return bool and use WARN_UNUSED_RETURN
<https://webkit.org/b/210414>
<rdar://problem/61693118>

Reviewed by Alex Christensen.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::decodeHashCountedSet):
(WebCore::decodeHashSet):
(WebCore::decodeOptionSet):
(WebCore::decodeFontHashSet):
(WebCore::decodeCanvasActivityRecord):
(WebCore::ResourceLoadStatistics::decode):

  • loader/ResourceLoadStatistics.h:
  • Change decode functions to return bool.
  • Add WARN_UNUSED_RETURN to all decode functions.
  • Check the return value of all decode functions.
10:15 AM Changeset in webkit [260022] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] WebKit::ViewGestureController::handleSwipeGesture(WebKit::WebBackForwardListItem*, double, WebKit::ViewGestureController::SwipeDirection) - flaky crashes.
https://bugs.webkit.org/show_bug.cgi?id=210433

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:58 AM Changeset in webkit [260021] by Russell Epstein
  • 2 edits in branches/safari-610.1.9-branch/Source/WebKit

Cherry-pick r259590. rdar://problem/61691110

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

9:54 AM Changeset in webkit [260020] by Russell Epstein
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

9:51 AM Changeset in webkit [260019] by Russell Epstein
  • 1 delete in branches/safari-610.1.9.1-branch

Delete branch.

9:48 AM Changeset in webkit [260018] by Russell Epstein
  • 2 edits in branches/safari-610.1.9.1-branch/Source/WebKit

Cherry-pick r259590. rdar://problem/61691110

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

9:48 AM Changeset in webkit [260017] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add message filtering to all iokit open rules
https://bugs.webkit.org/show_bug.cgi?id=210352

Reviewed by Sam Weinig.

Apply message filtering with reports and telemetry to all iokit-open rules in the WebContent process' sandbox on iOS
to gain a better understanding of which iokit-open rules we can investigate.

No new tests, since adding telemetry will not introduce a change in behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:43 AM Changeset in webkit [260016] by commit-queue@webkit.org
  • 6 edits in trunk

When drawing an image srcRect and imageRect have to be in the orientation of destRect
https://bugs.webkit.org/show_bug.cgi?id=210364

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-13
Reviewed by Darin Adler.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
Use the renderer to get the orientation of the image if it is available.
Otherwise fall back to computedStyle().

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
For async image decoding, we will use the none oriented size as the
sizeForDrawing. imageRect must be in the same orientation as destRect.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
srcRect must be in the same orientation as destRect.

LayoutTests:

  • fast/images/image-orientation-none-canvas.html:

Make this test for images with "visibility: hidden;" only. This guarantees
the images have renderers. Images with "display: none;" will be covered
in another patch because the width and height is currently incorrect if
"image-orientation: none;".

9:43 AM Changeset in webkit [260015] by Russell Epstein
  • 8 edits in branches/safari-610.1.9.1-branch/Source

Versioning.

9:40 AM Changeset in webkit [260014] by jh718.park@samsung.com
  • 8 edits in trunk/Source

Unreviewed. Remove redundant move in return statement.

Return statement already returns rvalue,
so we don't need move here.

This patch removes the build warning below since r259922.
warning: redundant move in return statement [-Wredundant-move]

Source/WebCore:

No new tests, no new behaviours.

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::decode):

  • platform/network/cf/CertificateInfoCFNet.cpp:

(WTF::Persistence::decodeSecTrustRef):

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WTF::Persistence::Coder<WebCore::HTTPHeaderMap>::decode):

Source/WTF:

  • wtf/persistence/PersistentCoders.cpp:

(WTF::Persistence::Coder<CString>::decode):
(WTF::Persistence::decodeStringText):
(WTF::Persistence::Coder<SHA1::Digest>::decode):

  • wtf/persistence/PersistentCoders.h:
9:35 AM Changeset in webkit [260013] by youenn@apple.com
  • 7 edits
    2 copies
    2 adds in trunk

Fix mute/unmute of CoreAudioCapture sources after revision 257914
https://bugs.webkit.org/show_bug.cgi?id=210381

Reviewed by Eric Carlson.

Source/WebCore:

Revert part of revision 257914 since we still need the active source registration/unregistration when capturing in web process.
Make sure mock factory delegates all active source handling to CoreAudioCaptureSourceFactory,
now that the mock factory is using CoreAudioCaptureSources with a mock share dunit.

Tests: platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html

platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html

  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

LayoutTests:

Clone tests for having both GPU and non GPU test runs.

  • platform/ios/mediastream/audio-muted-in-background-tab-gpu-process-expected.txt: Added.
  • platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html: Copied from LayoutTests/platform/ios/mediastream/audio-muted-in-background-tab.html.
  • platform/ios/mediastream/audio-muted-in-background-tab.html:
  • platform/ios/mediastream/getUserMedia-single-capture-gpu-process-expected.txt: Added.
  • platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html: Copied from LayoutTests/platform/ios/mediastream/getUserMedia-single-capture.html.
  • platform/ios/mediastream/getUserMedia-single-capture.html:
9:33 AM Changeset in webkit [260012] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Fix various build warnings
https://bugs.webkit.org/show_bug.cgi?id=210429

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-04-13
Reviewed by Mark Lam.

Source/JavaScriptCore:

Fix -Wimplicit-fallthrough warning by adding a default case CRASH() to prevent the inner
switch from falling through to the outer switch.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked const):

Source/WebCore:

Fix -Wunused-parameter warning.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImage2DBase):

Source/WebKit:

Use private-code instead of deprecated code command to build the Wayland protocol.

  • PlatformGTK.cmake:
9:31 AM Changeset in webkit [260011] by Russell Epstein
  • 1 copy in branches/safari-610.1.9.1-branch

New branch.

9:21 AM Changeset in webkit [260010] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Improve handling of unexpected network issues while communicating with Bugzilla
https://bugs.webkit.org/show_bug.cgi?id=210377

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(BugzillaBeautifulSoup.authenticate):

8:58 AM Changeset in webkit [260009] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Pre-fill columnIntrinsicWidths vector
https://bugs.webkit.org/show_bug.cgi?id=210415

Reviewed by Antti Koivisto.

Source/WebCore:

Vector<ColumnMinimumWidth> has a fixed number of entries (number of columns in the table).
(This patch also flips the shouldFlex flag to isFixedWidth. It reads better in the context of minimum _widths_).

Test: fast/layoutformattingcontext/table-with-column-spanner-first-row.html

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-with-column-spanner-first-row-expected.txt: Added.
  • fast/layoutformattingcontext/table-with-column-spanner-first-row.html: Added.
8:23 AM Changeset in webkit [260008] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK4] Fix usage of GDK event functions in PlatformWheelEventGtk
https://bugs.webkit.org/show_bug.cgi?id=210160

Reviewed by Michael Catanzaro.

No new tests needed.

  • platform/gtk/PlatformWheelEventGtk.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent): Conditionally
use the new GDK event functions when building with GTK4.

8:22 AM Changeset in webkit [260007] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

ews status-bubble hover-over message include unhelpful message 'Crash collection has quiesced'
https://bugs.webkit.org/show_bug.cgi?id=210378

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble):

8:00 AM Changeset in webkit [260006] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK][CMake] Introduce an USE_GTK4 build option
https://bugs.webkit.org/show_bug.cgi?id=210154

Reviewed by Carlos Garcia Campos.

Do the bare minimum changes to build against GTK4 and produce a WebKit port library with a
different name than GTK3 builds. Note that this does not attempt to make the built artifacts
parallel-installable yet, though at least the main library, headers, and the pkg-config .pc
file should be safe to install. The final names for built artifacts for GTK4 builds may
still change.

  • Source/cmake/OptionsGTK.cmake: Add a new USE_GTK4 public build option, which defaults

to FALSE for now, and depending on its value choose the required version of GTK and set
a different API version versions. This is enough to build a library with a different
name (libwebkit2gtk-5.0 vs. libwebkit2gtk-4.0) when GTK4 is in use.

7:36 AM Changeset in webkit [260005] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.1

WPE WebKit 2.28.1

7:28 AM Changeset in webkit [260004] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.1.
6:10 AM Changeset in webkit [260003] by ysuzuki@apple.com
  • 7 edits
    18 adds in trunk

module's default cross-origin value should be "anonymous"
https://bugs.webkit.org/show_bug.cgi?id=210326

Reviewed by Sam Weinig.

Source/WebCore:

The original spec was using "omit" crossorigin for modules when crossorigin is not set / empty.
However, the spec is changed to sending requests with "same-origin" credentials ("anonymous" crossorigin mode)
by default. We should follow it.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElementCachedScriptFetcher.cpp:

(WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const):

  • dom/ScriptElementCachedScriptFetcher.h:
  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script): While this is not directly related to this patch, added new tests found that we are returning
null StringView if the resource is zero byte. This totally works, but JSC::Parser has assertion that this is non-null
StringView. For zero byte CachedScript resource, we should return non-null empty StringView instead.

LayoutTests:

  • http/tests/security/basic-auth-module-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-propagate.html: Added.
  • http/tests/security/basic-auth-module-import.html: Added.
  • http/tests/security/basic-auth-module-propagate-expected.txt: Added.
  • http/tests/security/basic-auth-module-propagate.html: Added.
  • http/tests/security/basic-auth-module.html: Added.
  • http/tests/security/resources/module-nest-import.php: Added.
  • http/tests/security/resources/protected-script.php: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-import-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-propagate-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-import-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-propagate-expected.txt: Added.
3:30 AM Changeset in webkit [260002] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, flaky failures in editing/pasteboard and editing/deleting
https://bugs.webkit.org/show_bug.cgi?id=210421

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:18 AM Changeset in webkit [260001] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer] remove m_cdmInstance ASSERT in cdmInstanceDetached
https://bugs.webkit.org/show_bug.cgi?id=210331

Reviewed by Xabier Rodriguez-Calvar.

In tests that reset the src very quickly, the MediaKeys can be
installed and then the src is reset before an attachment message
is sent. Hence, detachment can result in no CDM currently
existing.

Covered by imported/w3c/web-platform-tests/encrypted-media.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceDetached): Only
assert if the CDM instance has been set before detachment.
(WebCore::MediaPlayerPrivateGStreamer::attemptToDecryptWithInstance):
Do not need the .get(), the operator== overload in RefPtr does
this for us, and it makes the code more consistent.

1:45 AM Changeset in webkit [260000] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.1

WebKitGTK 2.28.1

1:45 AM Changeset in webkit [259999] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.1 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.1.
1:24 AM Changeset in webkit [259998] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove return parameter from FrameLoader::closeURL
https://bugs.webkit.org/show_bug.cgi?id=210404

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-13
Reviewed by Manuel Rego Casasnovas.

Remove return parameter from FrameLoader::closeURL since it always
returns true and is never tested.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::closeURL):

  • loader/FrameLoader.h:
1:04 AM Changeset in webkit [259997] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove addExtraFieldsToSubresourceRequest
https://bugs.webkit.org/show_bug.cgi?id=210407

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-13
Reviewed by Darin Adler.

Remove addExtraFieldsToSubresourceRequest since it can be replaced by
calling addExtraFieldsToRequest. The loadType parameter is not taken
into account by defaultRequestCachingPolicy so FrameLoadType::Standard
rather than m_loadType is passed.

This patch also replaces the isMainResource boolean parameter with an enum.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addExtraFieldsToSubresourceRequest): Deleted.

  • loader/FrameLoader.h:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

12:15 AM Changeset in webkit [259996] by mark.lam@apple.com
  • 6 edits in trunk/Source

Enable the ability to build the ASM LLInt for ARMv7k.
https://bugs.webkit.org/show_bug.cgi?id=210412

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Fix the offlineasm so that it can build the ASM LLInt for ARMv7k. This patch does
not actually enable the ASM LLInt. The ARMv7k port still build the C Loop LLInt.

Also, the ARMv7k ASM LLInt is still broken and needs additional work before it
can run. This patch only fixes things so that it will build.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Added generate_settings_extractor.rb to the project so that we can view it from inside Xcode.
  • offlineasm/arm.rb:
  • Added support for the globaladdr LLInt instruction for ARMv7k.
  • offlineasm/backends.rb:
  • Fix the backend to enable ARMV7 also when building for ARMv7k.

Source/WTF:

Remove some old code that forces the ENABLE(C_LOOP) to be true if ENABLE(JIT) is
false. These 2 options used to be mutually exclusive, but is no more. Now, we
allow platforms to choose to build the ASM LLInt instead even if ENABLE(JIT) is
false.

  • wtf/PlatformEnable.h:
Note: See TracTimeline for information about the timeline view.