Timeline



Oct 12, 2019:

11:26 PM Changeset in webkit [251057] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] Crash in WebCore::DOMWindow::incrementScrollEventListenersCount
https://bugs.webkit.org/show_bug.cgi?id=202878

Reviewed by Alex Christensen.

Source/WebCore:

Added the missing null check in tryAddEventListener and tryRemoveEventListener for scroll event.

Test: fast/events/scroll-event-on-document-without-window.html

  • dom/Node.cpp:

(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):

LayoutTests:

Added a regression test for the crash.

  • fast/events/scroll-event-on-document-without-window-expected.txt: Added.
  • fast/events/scroll-event-on-document-without-window.html: Added.
10:35 PM Changeset in webkit [251056] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Regression (251018): Wincairo build broken: unresolved external symbol
https://bugs.webkit.org/show_bug.cgi?id=202879

Reviewed by Alex Christensen.

  • PlatformWin.cmake: Add dxgi library for CreateDXGIFactory1
6:39 PM Changeset in webkit [251055] by Simon Fraser
  • 10 edits
    1 delete in trunk/Source/WebCore

Move CSSReflectionDirection into RenderStyleConstants as ReflectionDirection
https://bugs.webkit.org/show_bug.cgi?id=202886

Reviewed by Sam Weinig.

Make CSSReflectionDirection an enum class ReflectionDirection, and fix the usage sites.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForReflection):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ReflectionDirection const):
(WebCore::CSSPrimitiveValue::operator CSSReflectionDirection const): Deleted.

  • css/CSSReflectionDirection.h: Removed.
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::reflectionOffset const):
(WebCore::RenderBox::reflectedRect const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleReflection.h:

(WebCore::StyleReflection::direction const):
(WebCore::StyleReflection::setDirection):
(WebCore::StyleReflection::StyleReflection):

6:14 PM Changeset in webkit [251054] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the spelling of ThreeDDarkDhasowColor and unwrap the ThemeType enums
https://bugs.webkit.org/show_bug.cgi?id=202887

Reviewed by Wenson Hsieh.

ThreeDDarkDhasowColor was misspelled, and one enum value per line please.

  • platform/ThemeTypes.h:
4:40 PM Changeset in webkit [251053] by Chris Dumez
  • 89 edits in trunk/Source/WebCore

Add [ActiveDOMObject] to IDLs of ActiveDOMObjects
https://bugs.webkit.org/show_bug.cgi?id=202869

Reviewed by Ryosuke Niwa.

Add [ActiveDOMObject] to IDLs of ActiveDOMObjects, this is necessary so that the wrapper
stays alive as long as ActiveDOMObject::hasPendingActivity() returns true. We may have
subtle lifetime bugs otherwise.

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/entriesapi/FileSystemDirectoryReader.idl:
  • Modules/entriesapi/FileSystemEntry.idl:
  • Modules/geolocation/Geolocation.idl:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/webvr/VRDisplay.h:
  • Modules/webvr/VRDisplay.idl:
  • workers/service/ServiceWorkerContainer.idl:
3:05 PM Changeset in webkit [251052] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Implement TextStream-based dumping for all the RenderStyle and SVGRenderStyle enum classes
https://bugs.webkit.org/show_bug.cgi?id=202877

Reviewed by Dean Jackson.

Make style-related enum classes dumpable with TextStream, and make some SVG style-related
classes dumpable.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/SVGRenderStyleDefs.cpp:

(WebCore::operator<<):

  • rendering/style/SVGRenderStyleDefs.h:
  • rendering/style/ShadowData.cpp:

(WebCore::operator<<):

  • rendering/style/ShadowData.h:
2:04 PM Changeset in webkit [251051] by Chris Dumez
  • 88 edits in trunk/Source/WebCore

Unreviewed, rolling out r251040.

Broke IDB tests in Debug

Reverted changeset:

"Add [ActiveDOMObject] to IDLs of ActiveDOMObjects"
https://bugs.webkit.org/show_bug.cgi?id=202869
https://trac.webkit.org/changeset/251040

1:34 PM Changeset in webkit [251050] by rniwa@webkit.org
  • 10 edits
    6 adds in trunk

Source/WebCore:
Invoke callbacks registered by requestIdleCallback
https://bugs.webkit.org/show_bug.cgi?id=202824

Reviewed by Antti Koivisto.

Invoke callbacks registered by requestIdleCallback unless it's canceled.

To do this, this patch introduces WindowEventLoop class, which represents the HTML5 event loop:
https://html.spec.whatwg.org/multipage/webappapis.html#window-event-loop

Because each and only each agent cluster is meant to have its own window event loop, this class will be shared
across multiple documents of the same registrable domain:
https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-agent-cluster-formalism

Tests: requestidlecallback/requestidlecallback-is-called.html

requestidlecallback/requestidlecallback-is-not-called-when-canceled.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::eventLoop): Added.
(WebCore::Document::requestIdleCallback): Associate IdleCallbackController with this document.

  • dom/Document.h:

(WebCore::Document::idleCallbackController): Added. Used for release assertions.

  • dom/IdleCallbackController.cpp:

(WebCore::IdleCallbackController::IdleCallbackController): Keeps a weak pointer to Document.
(WebCore::IdleCallbackController::queueIdleCallback):
(WebCore::IdleCallbackController::removeIdleCallback):
(WebCore::IdleCallbackController::queueTaskToStartIdlePeriod): Added.
(WebCore::IdleCallbackController::startIdlePeriod): Added. Implements the start an idle period algorithm:
https://w3c.github.io/requestidlecallback/#start-an-idle-period-algorithm
(WebCore::IdleCallbackController::queueTaskToInvokeIdleCallbacks): Added.
(WebCore::IdleCallbackController::invokeIdleCallbacks): Added. The invoke idle callback timeout algorithm:
https://w3c.github.io/requestidlecallback/#invoke-idle-callback-timeout-algorithm

  • dom/IdleCallbackController.h:
  • dom/IdleDeadline.h:
  • dom/WindowEventLoop.cpp: Added.

(WebCore::WindowEventLoop::create): Added.
(WebCore::WindowEventLoop::WindowEventLoop): Added.
(WebCore::WindowEventLoop::queueTask): Added.
(WebCore::WindowEventLoop::run): Added.

  • dom/WindowEventLoop.h: Added.
  • page/Page.cpp:

(WebCore::Page::updateRendering): Added comments for the missing pieces.

LayoutTests:
Invoke callback registered by requestIdleCallback
https://bugs.webkit.org/show_bug.cgi?id=202824

Reviewed by Antti Koivisto.

Added basic regression tests. The second test (requestidlecallback-is-not-called-when-canceled.html)
found a spec bug (https://github.com/w3c/requestidlecallback/issues/83).

  • requestidlecallback/requestidlecallback-is-called-expected.txt: Added.
  • requestidlecallback/requestidlecallback-is-called.html: Added.
  • requestidlecallback/requestidlecallback-is-not-called-when-canceled-expected.txt: Added.
  • requestidlecallback/requestidlecallback-is-not-called-when-canceled.html: Added.
12:17 PM Changeset in webkit [251049] by Chris Dumez
  • 9 edits in trunk

Back/Forward cache does not work after doing a favorite navigation
https://bugs.webkit.org/show_bug.cgi?id=202762
<rdar://problem/56126911>

Reviewed by Antti Koivisto.

Source/WebCore:

When a subframe goes into the page cache, make sure we null out the opener
link of any windows that were opened by this frame. This matches what would
happened if this frame were closed.

Covered by the following API tests:
ProcessSwap.PageCacheAfterProcessSwapByClient
ProcessSwap.OpenerLinkAfterAPIControlledProcessSwappingOfOpener

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::~FrameLoader):
(WebCore::FrameLoader::detachFromAllOpenedFrames):

  • loader/FrameLoader.h:

Source/WebKit:

When a process-swap was forced by the client, we would always close the page in the previous
process after navigating. This would prevent leveraging the back/forward cache when navigating
back after such a process-swap. The reason we were doing this is that other pages may have
opener link to this page and closing the page was an easy way to break this opener link.

To address the issue, we no longer close the previous page when a process-swap is forced by the
client. Instead, we make sure to disconnect the frames' openees from their opener then the opener
enters the page cache.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::suspendForProcessSwap):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:17 AM Changeset in webkit [251048] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Clearing Website data for a given session should not shut down cached processes for other sessions
https://bugs.webkit.org/show_bug.cgi?id=202865
<rdar://problem/56202912>

Reviewed by Antti Koivisto.

When clearing Website data for a given data store, we now only clear cached processes
(either if BackForwardCache or WebProcessCache) if they are associated with this
particular data store. It is very wasteful otherwise.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
ProvisionalPageProxy & SuspendedPageProxy's destructors no longer call
WebProcessProxy::maybeShutdown() asynchronously. We now call maybeShutdown()
synchronously in WebProcessProxy::decrementSuspendedPageCount() and
WebProcessProxy::removeProvisionalPageProxy() instead. This makes things a
lot more predictable.

  • UIProcess/WebBackForwardCache.cpp:

(WebKit::WebBackForwardCache::removeEntriesForSession):
Add new removeEntriesForSession() method to clear only back / forward cache
entries associated with a particular session.

(WebKit::WebBackForwardCache::clear):
Stop taking a parameter indicating if we allow the processes to enter the
process cache. Now that we call maybeShutdown() synchronously when destroying
a SuspendedPageProxy, we can simply allow the processes to enter the process
cache unconditionally. If the caller does not want this processes in the page
cache, they can clear the process cache afterwards.

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

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
Now that destroying a SuspendedPageProxy or a ProvisionalPageProxy may shutdown
their process synchronously, add a scope here to prevent shutdown of the process
for the duration of this scope, since we're about to use it for a navigation and
we don't want it to get shutdown, even if there is no longer anything using it.

(WebKit::WebPageProxy::continueNavigationInNewProcess):
Add new assertion and rename parameter for consistency.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::handleMemoryPressureWarning):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addProvisionalPageProxy):
Add new assertion.

(WebKit::WebProcessProxy::removeProvisionalPageProxy):
Call maybeShutDown() if this was the last provisional page.

(WebKit::WebProcessProxy::maybeShutDown):
Drop parameter indicating if we want to allow the process to enter the process
cache and allow caching unconditionally.

(WebKit::WebProcessProxy::canTerminateAuxiliaryProcess):
Prevent termination if there is a ScopePreventingShutdown.

(WebKit::WebProcessProxy::decrementSuspendedPageCount):
Call maybeShutDown() if this was the last suspended page.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::ScopePreventingShutdown::ScopePreventingShutdown):
(WebKit::WebProcessProxy::ScopePreventingShutdown::~ScopePreventingShutdown):
(WebKit::WebProcessProxy::makeScopePreventingShutdown):
Add new facility to prevent shutdown of a process for the duration of the scope.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):
When removing website data, only clear cached processes if they are associated with
the current data store.

7:29 AM WebKitGTK/2.26.x edited by Michael Catanzaro
(diff)
2:19 AM Changeset in webkit [251047] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/win

requestIdleCallback is not enabled in DumpRenderTree on Windows
https://bugs.webkit.org/show_bug.cgi?id=202876

Address the forgotten review comment.

  • WebPreferenceKeysPrivate.h:
2:16 AM Changeset in webkit [251046] by rniwa@webkit.org
  • 8 edits in trunk

Source/WebKitLegacy/win:
requestIdleCallback is not enabled in DumpRenderTree on Windows
https://bugs.webkit.org/show_bug.cgi?id=202876

Reviewed by Wenson Hsieh.

Added the missing plumbing to enable requestIdleCallback.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::requestIdleCallbackEnabled):
(WebPreferences::setRequestIdleCallbackEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:
requestIdleCallback cannot be enabled in DumpRenderTree on Windows
https://bugs.webkit.org/show_bug.cgi?id=202876

Reviewed by Wenson Hsieh.

Added the missing plumbing for Windows port.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setWebPreferencesForTestOptions):

12:57 AM Changeset in webkit [251045] by Chris Fleizach
  • 11 edits in trunk/Source

AX: Make AXIsolatedTree compile again
https://bugs.webkit.org/show_bug.cgi?id=202702
<rdar://problem/56084968>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Fix compilation and runtime issues when building with ACCESSIBILITY_ISOLATED_TREE.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::treePageCache):
(WebCore::AXIsolatedTree::nodeForID const):

  • Remove release assert here because the initial request that comes through happens on the main thread. We need to handle that case specific case.

(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::initializePageTreeForID): Deleted.
(WebCore::AXIsolatedTree::setInitialRequestInProgress): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedTreeNode::rectAttributeValue const):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertToNSArray):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper childrenVectorArray]):

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]):

Oct 11, 2019:

11:35 PM Changeset in webkit [251044] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Windows build fix attempt after r251043.

  • dom/ShadowRoot.cpp:
11:09 PM Changeset in webkit [251043] by rniwa@webkit.org
  • 9 edits
    14 adds in trunk

Add the support for ShadowRoot.delegateFocus
https://bugs.webkit.org/show_bug.cgi?id=166484
<rdar://problem/29816058>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import W3C tests from https://github.com/web-platform-tests/wpt/pull/18035/commits/a8a89f224f2170723170a452cb18b46cafb723b6.

  • web-platform-tests/resources/testdriver-vendor.js:
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-method-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-method.html: Added.
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-varies-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-varies.html: Added.
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-zero-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-zero.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-negative-delegatesFocus-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-negative-delegatesFocus.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-delegatesFocus-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-delegatesFocus.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-zero-delegatesFocus-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-zero-delegatesFocus.html: Added.

Source/WebCore:

Implement delegatesFocus as specified in https://github.com/whatwg/html/pull/4796

When the shadow root of an element has delegates focus flag set, focusing on the shadow host would automatically
"delegates" focus to the first focusable element in the shadow tree instead.

The first focusable element is determined as the first element that is programatically focusable or mouse focusable
in the flat tree (composed tree in WebKit's terminology) in the case of the element getting focused via DOM API,
Element.prototype.focus, by via mouse down. In the case of sequential focus navigation (via tab key), it's the
first keyboard focusable element in the tabIndex order.

Tests: imported/w3c/web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-method.html

imported/w3c/web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-varies.html
imported/w3c/web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-tabindex-zero.html
imported/w3c/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html
imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-negative-delegatesFocus.html
imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-delegatesFocus.html
imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-zero-delegatesFocus.html

  • dom/Element.cpp:

(WebCore::Element::isKeyboardFocusable const): A shadow host with the delegates focus flag is not considered as
keyboard focusable. The rest is taken care of by the existing logic in FocusController.
(WebCore::isProgramaticallyFocusable): Extracted from Element::focus.
(WebCore::findFirstProgramaticallyFocusableElementInComposedTree): Added.
(WebCore::Element::focus): Added the support for delegatesFocus.

  • dom/Element.h:

(WebCore::ShadowRootInit::delegatesFocus): Added.

  • dom/Element.idl: Ditto.
  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::ShadowRoot): Added delegatesFocus to the constructor.

  • dom/ShadowRoot.h:
  • page/EventHandler.cpp:

(WebCore::findFirstMouseFocusableElementInComposedTree): Added.
(WebCore::EventHandler::dispatchMouseEvent): Added the support for delegatesFocus. Uses the first mouse focusable
element in the flat tree (composed tree) order.

  • page/FocusController.cpp:

(WebCore::FocusController::findFirstFocusableElementInShadowRoot):

  • page/FocusController.h:
10:43 PM Changeset in webkit [251042] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS Debug] Layout Test editing/execCommand/print.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=196654
<rdar://problem/49652875>

Removed the skip expectation since the test is no longer crashing in my local testing.

  • platform/ios-simulator-wk2/TestExpectations:
10:07 PM Changeset in webkit [251041] by commit-queue@webkit.org
  • 36 edits in trunk/Source

Cleanup RuntimeEnabledFeatures includes
https://bugs.webkit.org/show_bug.cgi?id=202857

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-11
Reviewed by Eric Carlson.

These classes must have had made use of runtime flags before
but are not using them anymore.

Source/WebCore:

  • Modules/mediastream/MediaDevices.cpp:
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
  • accessibility/AccessibilityObject.cpp:
  • css/CSSComputedStyleDeclaration.cpp:
  • css/MediaQueryEvaluator.cpp:
  • css/MediaQueryExpression.cpp:
  • css/parser/CSSParser.cpp:
  • dom/ContainerNode.cpp:
  • dom/EventTarget.cpp:
  • dom/Position.cpp:
  • dom/PseudoElement.cpp:
  • dom/TreeScope.cpp:
  • dom/ViewportArguments.cpp:
  • history/CachedFrame.cpp:
  • html/HTMLPlugInElement.cpp:
  • html/HTMLStyleElement.cpp:
  • html/HTMLTrackElement.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • loader/ResourceLoadNotifier.cpp:
  • page/DOMWindow.cpp:
  • page/EventHandler.cpp:
  • page/PointerLockController.cpp:
  • page/csp/ContentSecurityPolicy.cpp:
  • page/scrolling/ScrollingCoordinator.cpp:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • rendering/RenderFlexibleBox.cpp:
  • rendering/style/RenderStyle.cpp:
  • rendering/updating/RenderTreeUpdater.cpp:

Source/WebKit:

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
  • UIProcess/WebAuthentication/Cocoa/LocalService.mm:
  • UIProcess/WebProcessPool.cpp:
9:55 PM Changeset in webkit [251040] by Chris Dumez
  • 88 edits in trunk/Source/WebCore

Add [ActiveDOMObject] to IDLs of ActiveDOMObjects
https://bugs.webkit.org/show_bug.cgi?id=202869

Reviewed by Ryosuke Niwa.

Add [ActiveDOMObject] to IDLs of ActiveDOMObjects, this is necessary so that the wrapper
stays alive as long as ActiveDOMObject::hasPendingActivity() returns true. We may have
subtle lifetime bugs otherwise.

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/entriesapi/FileSystemDirectoryReader.idl:
  • Modules/entriesapi/FileSystemEntry.idl:
  • Modules/geolocation/Geolocation.idl:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/webvr/VRDisplay.h:
  • Modules/webvr/VRDisplay.idl:
  • workers/service/ServiceWorkerContainer.idl:
8:57 PM Changeset in webkit [251039] by Devin Rousso
  • 18 edits
    2 adds in trunk

Web Inspector: Debugger: support pattern blackboxing
https://bugs.webkit.org/show_bug.cgi?id=198855

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Allow scripts to be blackboxed based on URL patterns (in addition to individual URLs) which
can be extremely useful when trying to step through unminified library/framework code.

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

(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::setShouldBlackboxURL):
(Inspector::InspectorDebuggerAgent::shouldBlackboxURL const): Added.
(Inspector::InspectorDebuggerAgent::didParseSource):

  • inspector/protocol/Debugger.json:

Add caseSensitive and isRegex optional boolean parameters to setShouldBlackboxURL.

Source/WebInspectorUI:

Allow scripts to be blackboxed based on URL patterns (in addition to individual URLs) which
can be extremely useful when trying to step through unminified library/framework code.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype.blackboxTypeForSourceCode): Added.
(WI.DebuggerManager.prototype.get blackboxPatterns): Added.
(WI.DebuggerManager.prototype.setShouldBlackboxScript):
(WI.DebuggerManager.prototype.setShouldBlackboxPattern): Added.
(WI.DebuggerManager.prototype.isScriptBlackboxed): Deleted.
Provide a separate path for setting URL pattern blackboxes, rather than an exact/given URL.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView):
(WI.SettingsTabContentView.prototype.selectBlackboxPattern): Added.
(WI.SettingsTabContentView.prototype.initialLayout):
(WI.SettingsTabContentView.prototype._createSourcesSettingsView):

  • UserInterface/Views/BlackboxSettingsView.js: Added.

(WI.BlackboxSettingsView):
(WI.BlackboxSettingsView.prototype.selectBlackboxPattern):
(WI.BlackboxSettingsView.prototype.initialLayout):
(WI.BlackboxSettingsView.prototype._addRow):

  • UserInterface/Views/BlackboxSettingsView.css: Added.

(.settings-view.blackbox > :matches(p, table)):
(.settings-view.blackbox > p):
(.settings-view.blackbox > * + p):
(.settings-view.blackbox > p:last-child):
(.settings-view.blackbox > p > .toggle-script-blackbox):
(.settings-view.blackbox > table):
(.settings-view.blackbox > table > thead th):
(.settings-view.blackbox > table > tbody td):
(.settings-view.blackbox > table > tbody td:not(.remove-blackbox)):
(.settings-view.blackbox > table :matches(th, td).url):
(.settings-view.blackbox > table > tbody td.url > .CodeMirror):
(.settings-view.blackbox > table :matches(th, td):matches(.case-sensitive, .remove-blackbox)):
(.settings-view.blackbox > table > tbody > tr:not(:hover) > td.remove-blackbox):
(.settings-view.blackbox > table > tbody td.remove-blackbox > .remove-blackbox-button):
Add a "Blackbox" pane that contains an editable table of pattern blackboxes, each having its
own row (code mirror for the URL regular expression and a checkbox for case sensitivity).

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype.updateStatus):
(WI.SourceCodeTreeElement.prototype._updateSourceCode):
(WI.SourceCodeTreeElement.prototype._updateToggleBlackboxImageElementState):
(WI.SourceCodeTreeElement.prototype._handleToggleBlackboxedImageElementClicked):

  • UserInterface/Views/SourceCodeTreeElement.css:

(.tree-outline .item .status > .toggle-script-blackbox, .tree-outline:focus .item.selected .status > .toggle-script-blackbox.pattern-blackboxed): Added.
(.tree-outline .item .status > .toggle-script-blackbox.pattern-blackboxed): Added.
(.tree-outline .item .status > .toggle-script-blackbox): Added.
(.tree-outline .item .status > .toggle-script-blackbox:not(.pattern-blackboxed)): Added.
(.tree-outline .item .status > .toggle-script-blackbox:not(.url-blackboxed, .pattern-blackboxed)): Added.
(.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackbox, .tree-outline .item:not(:hover) .status > .toggle-script-blackbox:not(.pattern-blackboxed, .url-blackboxed)): Added.
(@media (prefers-color-scheme: dark) .tree-outline .item .status > .toggle-script-blackbox): Added.
(@media (prefers-color-scheme: dark) .tree-outline .item .status > .toggle-script-blackbox.pattern-blackboxed): Added.
(@media (prefers-color-scheme: dark) .tree-outline .item .status > .toggle-script-blackbox:not(.pattern-blackboxed)): Added.
(.tree-outline .item .status > .toggle-script-blackboxed): Deleted.
(.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, .tree-outline .item:not(:hover) .status > .toggle-script-blackboxed:not(.blackboxed)): Deleted.
(.tree-outline:focus .item.selected .status > .toggle-script-blackboxed): Deleted.
(.tree-outline .item .status > .toggle-script-blackboxed.blackboxed): Deleted.
(@media (prefers-color-scheme: dark) .tree-outline .item .status > .toggle-script-blackboxed): Deleted.

  • UserInterface/Views/ShaderProgramTreeElement.css:

(.tree-outline .item.shader-program .status > img):
(.tree-outline .item.shader-program:not(:hover, .disabled) .status > img): Added.
(.tree-outline .item.shader-program:not(.disabled) .status > img): Added.
(@media (prefers-color-scheme: dark) .tree-outline .item.shader-program .status > img):
(.tree-outline .item.shader-program:not(:hover, .selected, .disabled) .status > img): Deleted.
(.tree-outline:focus .item.shader-program.selected .status > img): Deleted.
(.tree-outline .item.shader-program.disabled .status > img): Deleted.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • UserInterface/Images/Hide.svg:

Use a slightly different style for the blackbox icon if the source code's URL matches a
blackbox pattern. Clicking on the blackbox icon in this state will show the Settings Tab.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI._handleSettingsKeyboardShortcut): Added.
(WI.showSettingsTab): Added.
(WI._showSettingsTab): Deleted.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/debugger/setShouldBlackboxURL.html:
  • inspector/debugger/setShouldBlackboxURL-expected.txt:
8:40 PM Changeset in webkit [251038] by Devin Rousso
  • 11 edits
    2 adds in trunk

Web Inspector: Elements: Computed: show shorthand properties in addition to longhand ones
https://bugs.webkit.org/show_bug.cgi?id=200554

Reviewed by Matt Baker.

Source/WebCore:

Test: inspector/css/getComputedStyleForNode.html

Include additional CSS.CSSComputedStyleProperty items for shorthand CSS properties when
calling CSS.getComputedStyleForNode.

  • inspector/InspectorStyleSheet.h:
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::buildArrayForComputedStyle const):
(WebCore::InspectorStyle::collectProperties const): Added.
(WebCore::InspectorStyle::styleWithProperties const):
(WebCore::InspectorStyle::populateAllProperties const): Deleted.

Source/WebInspectorUI:

Replace the "Show All [ ]" checkbox header option in the "Properties" section with a filter
icon that controls both "Show All" and "Prefer Shorthands", the latter of which will cause
any longhand properties to be hidden and their respective shorthands to be shown.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty):
(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype.get isVariable): Added.
(WI.CSSProperty.prototype.get isShorthand): Added.
(WI.CSSProperty.prototype.get shorthandPropertyNames): Added.
(WI.CSSProperty.prototype.get variable): Deleted.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel):
(WI.ComputedStyleDetailsPanel.prototype.applyFilter):
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
(WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged): Deleted.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section > .content): Added.
(.sidebar > .panel.details.css-style > .content > .computed .spreadsheet-style-declaration-editor): Added.
(.sidebar > .panel.details.css-style > .content > .computed .property): Added.
(.sidebar > .panel.details.css-style > .content > .computed .property .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .property:not(:hover) .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables)): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property .go-to-arrow): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property:not(:hover) .go-to-arrow): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) > .content): Deleted.

  • UserInterface/Views/ComputedStyleSection.js:

(WI.ComputedStyleSection):
(WI.ComputedStyleSection.prototype.set showsShorthandsInsteadOfLonghands): Added.
(WI.ComputedStyleSection.prototype.get propertiesToRender):
(WI.ComputedStyleSection.prototype.set propertyVisibilityMode): Deleted.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.update):
(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens):

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/css/getComputedStyleForNode.html: Added.
  • inspector/css/getComputedStyleForNode-expected.txt: Added.
7:57 PM Changeset in webkit [251037] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

USE_ANGLE=1 build broken with last ANGLE roll
https://bugs.webkit.org/show_bug.cgi?id=202872

Add FrameCapture_mock.cpp to Xcode and CMake builds.

Patch by Kenneth Russell <kbr@chromium.org> on 2019-10-11
Reviewed by Alex Christensen.

  • ANGLE.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • GLESv2.cmake:
7:51 PM Changeset in webkit [251036] by rniwa@webkit.org
  • 22 edits
    8 deletes in trunk/Source

Make WebInspector's remote debug EventLoop code into RunLoop
https://bugs.webkit.org/show_bug.cgi?id=202716

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Updated the code to use RunLoop::cycle instead of now deleted EventLoop class.

The runloop mode used in Apple's port is moved to RemoteInspectionTarget::runLoopMode
with a special case for watchOS.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::runEventLoopWhilePaused):
(Inspector::JSGlobalObjectScriptDebugServer::runLoopMode): Added.

  • inspector/remote/RemoteInspectionTarget.cpp:

(Inspector::RemoteInspectionTarget::pauseWaitingForAutomaticInspection):
Invoke CFRunLoopAddSource with the runloop mode only expcet on watchOS where
we use the default runloop anyway.

  • inspector/remote/RemoteInspectionTarget.h:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteTargetInitializeGlobalQueue):
(Inspector::RemoteConnectionToTarget::setupRunLoop):
(Inspector::RemoteConnectionToTarget::teardownRunLoop):

Source/WebCore:

Use RunLoop::cycle.

  • PlatformFTW.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWin.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):

  • platform/SourcesGLib.txt:
  • platform/glib/EventLoopGlib.cpp: Removed.
  • platform/playstation/EventLoopPlayStation.cpp: Removed.
  • platform/win/EventLoopWin.cpp: Removed.

Source/WTF:

This patch merges WebInspector's EventLoop code into RunLoop as a static function.

  • wtf/RunLoop.h:

(WTF::RunLoop::cycle):

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::cycle): Added.

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::cycle): Added.

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::cycle): Added.

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::cycle): Added.

7:48 PM Changeset in webkit [251035] by aestes@apple.com
  • 3 edits in trunk/LayoutTests

[iOS] Unreviewed test gardening

  • platform/ios/TestExpectations: Removed failing expectation.
  • platform/ios/quicklook/numbers-09-expected.txt: Reset expected result.
7:19 PM Changeset in webkit [251034] by rniwa@webkit.org
  • 4 edits in trunk/Source

Make it safe to store a ThreadSafeRefCounted object in Ref & RefPtr safe inside its destructor
https://bugs.webkit.org/show_bug.cgi?id=201576
Source/JavaScriptCore:

<rdar://problem/56001847>

Reviewed by Geoffrey Garen and Mark Lam.

Made DropAllLocks::DropAllLocks check Heap::isShuttingDown instead of VM's refCount being 0 to detect
when VM is getting destroyed.

  • runtime/JSLock.cpp:

(JSC::JSLock::DropAllLocks::DropAllLocks):

Source/WTF:

Reviewed by Geoffrey Garen and Mark Lam.

This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
so that storing an instance of this object in Ref or RefPtr would not trigger a recursive delete.

Note: this patch does not try to fix a race condition by which another thread tries to ref()
this object after the "last" call to deref had happened since such a code would ref() this object
long after it had been removed (UAF), nor some code calling deref() before calling ref() inside
a destructor since there is no way to defend against unpaired calls to ref() & deref() like that.

Also added m_deletionHasBegun like RefCounted.

  • wtf/ThreadSafeRefCounted.h:

(WTF::ThreadSafeRefCountedBase::ref const):
(WTF::ThreadSafeRefCountedBase::hasOneRef const):
(WTF::ThreadSafeRefCountedBase::derefBase const):

6:27 PM Changeset in webkit [251033] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed iPad test expectation gardening.

Un-skip tests in http/tests/paymentrequest/ that no longer time out on iPad.

  • platform/ipad/TestExpectations:
5:20 PM Changeset in webkit [251032] by dino@apple.com
  • 10 edits
    1 delete in trunk

REGRESSION (r244239) Layout Test fast/canvas/canvas-too-large-to-draw.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202870
Source/WebCore:

Reviewed by Simon Fraser.

Add an internal method to specify a fake limit of canvas pixel memory
so our tests produce reproducible results.

  • html/HTMLCanvasElement.cpp:

(WebCore::maxActivePixelMemory):
(WebCore::HTMLCanvasElement::setMaxPixelMemoryForTesting):

  • html/HTMLCanvasElement.h:
  • testing/Internals.cpp:

(WebCore::Internals::setMaxCanvasPixelMemory):

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

LayoutTests:

<rdar://51862629>

Reviewed by Simon Fraser.

The output from this test depends on the amount of RAM on the system, so
modify it to specify a limit for testing which will give reproducible results.

  • fast/canvas/canvas-too-large-to-draw-expected.txt:
  • fast/canvas/canvas-too-large-to-draw.html:
  • platform/ios/fast/canvas/canvas-too-large-to-draw-expected.txt: Removed.
  • platform/ipad/TestExpectations:
5:12 PM Changeset in webkit [251031] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

API Test TestWebKitAPI.WebKit.DefaultQuota is very flaky on High Sierra
https://bugs.webkit.org/show_bug.cgi?id=202850

Reviewed by Alex Christensen.

Make sure the DOMCache / DOMCacheStorage objects stay alive while they have pending
promises to be resolved.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::hasPendingActivity const):

  • Modules/cache/DOMCache.h:
  • Modules/cache/DOMCache.idl:
  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::hasPendingActivity const):

  • Modules/cache/DOMCacheStorage.h:
  • Modules/cache/DOMCacheStorage.idl:
4:47 PM Changeset in webkit [251030] by commit-queue@webkit.org
  • 7 edits in trunk/LayoutTests

Layout Test media/W3C/audio/events/event_progress.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=181966
<rdar://problem/51449034>

Patch by Peng Liu <Peng Liu> on 2019-10-11
Reviewed by Alexey Proskuryakov.

Use the option {once: true} in addEventListener instead of a variable to avoid
executing the event handler more than once.

  • media/W3C/audio/events/event_order_loadstart_progress.html:
  • media/W3C/audio/events/event_progress.html:
  • media/W3C/audio/events/event_progress_manual.html:
  • media/W3C/video/events/event_order_loadstart_progress.html:
  • media/W3C/video/events/event_progress.html:
  • media/W3C/video/events/event_progress_manual.html:
4:29 PM Changeset in webkit [251029] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing feedback from Darin for r251019.

Added a new comment for clarity.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForPageCache):

4:17 PM Changeset in webkit [251028] by Dewei Zhu
  • 5 edits in trunk/Websites/perf.webkit.org

Improve test freshness page interaction experience.
https://bugs.webkit.org/show_bug.cgi?id=202684

Reviewed by Ryosuke Niwa.

Change test freshness page show tooltip on click instead of popuping on mouse hover.
And clicking anywhere in 'page-with-heading' section except the tooltip can dismiss tooltip.
Add keyboard support to move focus around including 'Tab' key support.
Add support to use 'Enter' key to show or dismiss tooltip.
Add support to use 'Escape' key to dismiss tooltip.

  • public/shared/common-component-base.js: Added support for link to specify 'tabindex'.

(CommonComponentBase.prototype.createLink):
(CommonComponentBase.createLink):
(CommonComponentBase):

  • public/v3/components/base.js: Added support for customizing whether or not prevent default and stop propagation

while creating event handler.
(ComponentBase.prototype.createEventHandler):
(ComponentBase.createEventHandler):
(ComponentBase):

  • public/v3/components/freshness-indicator.js:

(FreshnessIndicator): Removed 'url' property and removed customization for mouse event.
(FreshnessIndicator.prototype.update):
(FreshnessIndicator.prototype.didConstructShadowTree): Deleted.

  • public/v3/pages/test-freshness-page.js:

(TestFreshnessPage): Changed to show tooltip on click and added key board event.
(TestFreshnessPage.prototype.didConstructShadowTree): Added key event support.
(TestFreshnessPage.prototype._findClosestIndicatorAnchorForCoordinate):
(TestFreshnessPage.prototype.render):
(TestFreshnessPage.prototype._renderTooltip):
(TestFreshnessPage.prototype._constructTableCell): Added tabIndex for each cell that contains freshness indicator.
(TestFreshnessPage.prototype._configureAnchorForIndicator):
(TestFreshnessPage.prototype._clearIndicatorState): Changed the color of links in tooltip to a more readable color.
Added styles when anchor for status cell and links on tooltip are focused.
(TestFreshnessPage.cssTemplate):

2:47 PM Changeset in webkit [251027] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Update build.webkit.org basedir
https://bugs.webkit.org/show_bug.cgi?id=202856

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/buildbot.tac: Updated basedir. Also increased the

size of twistd.log files and reduced number of files for easier maintenance.

2:45 PM Changeset in webkit [251026] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Layout Test fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=202867
<rdar://52968736>

Reviewed by Wenson Hsieh.

From the failing results, it looks like the event listener for touchend was firing
after the uiScriptController returned its result, which is strange.
I was unable to reproduce this, so I rewrote the test to use UIHelper, which
hopefully will improve the situation (although... is basically the same code).

  • fast/events/touch/ios/tap-with-passive-listener-inside-active-listener-expected.txt:
  • fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html:
2:26 PM Changeset in webkit [251025] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Services EWS should also run build.webkit.org unit tests
https://bugs.webkit.org/show_bug.cgi?id=202864

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(ServicesFactory.init): Added new RunBuildWebKitUnitTests step.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Added paths for build.webkit.org code.
(RunBuildWebKitUnitTests): Build step to run build.webkit.org unit tests.
(RunBuildWebKitUnitTests.init): Set workdir, timeout and logEnviron.
(RunBuildWebKitUnitTests.getResultSummary): Customize Buildbot messages for this build step.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
1:44 PM Changeset in webkit [251024] by Joseph Pecoraro
  • 27 edits
    1 copy
    2 adds in trunk

Web Inspector: Local Resource Overrides: UI for overriding image and font resource content
https://bugs.webkit.org/show_bug.cgi?id=202016
<rdar://problem/55541475>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Extend SourceCodeRevision to be a (content, base64Encoded, mimeType) tuple and
make clients update the revision content more explicitly (updateRevisionContent).
This also includes blobContent as a more explicit way to get the content as
a Blob, which may not always be desired.

Switch LocalResource use the originalRevision / currentRevision instead of
keeping its own localContent / localContentIsBase64Encoded properties.

Introduce a DropZoneView to simplify handling of presenting a drop zone
over a specific element. And use it for the ImageResourceContentView for local
resource overrides to accept new content.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

New strings and resources.

  • .eslintrc:
  • UserInterface/Base/BlobUtilities.js: Added.

(WI.BlobUtilities.blobForContent):
(WI.BlobUtilities.decodeBase64ToBlob):
(WI.BlobUtilities.textToBlob):
(WI.BlobUtilities.blobAsText):
(WI.BlobUtilities):

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.async.readDataURL):
(WI.FileUtilities):

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.fileExtensionForFilename):
(WI.fileExtensionForURL):

  • UserInterface/Base/Utilities.js:

Move around or introduce some minor utilities.

  • UserInterface/Models/SourceCodeRevision.js:

(WI.SourceCodeRevision):
(WI.SourceCodeRevision.prototype.get sourceCode):
(WI.SourceCodeRevision.prototype.get content):
(WI.SourceCodeRevision.prototype.get base64Encoded):
(WI.SourceCodeRevision.prototype.get mimeType):
(WI.SourceCodeRevision.prototype.get blobContent):
(WI.SourceCodeRevision.prototype.updateRevisionContent):
(WI.SourceCodeRevision.prototype.copy):
(WI.SourceCodeRevision.prototype.set content): Deleted.
Data is now a (content, base64Encoded, mimeType) tuple.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.responseIntercepted):
(WI.NetworkManager.prototype._handleResourceContentDidChange):
(WI.NetworkManager.prototype._persistLocalResourceOverrideSoonAfterContentChange): Deleted.
This is now a unified resource content change path without anything special for
local resource overrides.

  • UserInterface/Models/LocalResource.js:

(WI.LocalResource.prototype.toJSON):
(WI.LocalResource.prototype.requestContentFromBackend):
(WI.LocalResource.prototype.handleCurrentRevisionContentChange):
(WI.LocalResource):
(WI.LocalResource.prototype.get localContent): Deleted.
(WI.LocalResource.prototype.get localContentIsBase64Encoded): Deleted.
(WI.LocalResource.prototype.hasContent): Deleted.
(WI.LocalResource.prototype.setContent): Deleted.
(WI.LocalResource.prototype.updateOverrideContent): Deleted.
Use originalRevision / currentRevision as appropriate.

  • UserInterface/Views/DropZoneView.css: Added.

(.drop-zone):
(.drop-zone.visible):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/DropZoneView.js: Added.

(WI.DropZoneView):
(WI.DropZoneView.prototype.get delegate):
(WI.DropZoneView.prototype.get targetElement):
(WI.DropZoneView.prototype.set targetElement):
(WI.DropZoneView.prototype.initialLayout):
(WI.DropZoneView.prototype._startActiveDrag):
(WI.DropZoneView.prototype._stopActiveDrag):
(WI.DropZoneView.prototype._handleDragEnter):
(WI.DropZoneView.prototype._handleDragLeave):
(WI.DropZoneView.prototype._handleDragOver):
(WI.DropZoneView.prototype._handleDrop):
Simplified handling of a drop zone.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.removeLoadingIndicator):
More safely remove children and subviews.

(WI.ResourceContentView):
(WI.ResourceContentView.prototype.get resource):
(WI.ResourceContentView.prototype.get navigationItems):
(WI.ResourceContentView.prototype.localResourceOverrideInitialContent):
(WI.ResourceContentView.prototype.closed):
(WI.ResourceContentView.prototype.removeLoadingIndicator):
(WI.ResourceContentView.prototype._contentAvailable):
(WI.ResourceContentView.prototype._issueWasAdded):
(WI.ResourceContentView.prototype.async._handleCreateLocalResourceOverride):
(WI.ResourceContentView.prototype._handleRemoveLocalResourceOverride):
(WI.ResourceContentView.prototype._handleLocalResourceOverrideChanged):
(WI.ResourceContentView.prototype._mouseWasClicked):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView):
(WI.TextResourceContentView.prototype.get navigationItems):
(WI.TextResourceContentView.prototype.localResourceOverrideInitialContent):
(WI.TextResourceContentView.prototype._contentWillPopulate):
(WI.TextResourceContentView.prototype._contentDidPopulate):
(WI.TextResourceContentView.prototype._textEditorContentDidChange):
(WI.TextResourceContentView.prototype._shouldBeEditable):
(WI.TextResourceContentView.prototype.async._handleCreateLocalResourceOverride): Deleted.
(WI.TextResourceContentView.prototype._handleRemoveLocalResourceOverride): Deleted.
(WI.TextResourceContentView.prototype._handleLocalResourceOverrideChanged): Deleted.
Extract generalized local resource override properties into the ResourceContentView base class.

  • UserInterface/Views/FontResourceContentView.css:

(.content-view.resource.font):
(.content-view.resource.font > .drop-zone):
(.content-view.resource.font > .preview-container):
(.content-view.resource.font .preview):

  • UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView):
(WI.FontResourceContentView.prototype.contentAvailable):
(WI.FontResourceContentView.prototype.shown):
(WI.FontResourceContentView.prototype.hidden):
(WI.FontResourceContentView.prototype.closed):
(WI.FontResourceContentView.prototype.layout):
(WI.FontResourceContentView.prototype._updatePreviewElement.createMetricElement):
(WI.FontResourceContentView.prototype._updatePreviewElement):
(WI.FontResourceContentView.prototype.dropZoneShouldAppearForDragEvent):
(WI.FontResourceContentView.prototype.dropZoneHandleDrop):
Create a drop zone that will update the font local resource override content.

  • UserInterface/Views/ImageResourceContentView.css:

(.content-view.resource.image):
(.content-view.resource.image > .drop-zone):
(.content-view.resource.image > .img-container):
(.content-view.resource.image img):

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView):
(WI.ImageResourceContentView.prototype.get navigationItems):
(WI.ImageResourceContentView.prototype.contentAvailable):
(WI.ImageResourceContentView.prototype.closed):
(WI.ImageResourceContentView.prototype.dropZoneShouldAppearForDragEvent):
(WI.ImageResourceContentView.prototype.dropZoneHandleDrop):
Create a drop zone that will update the image local resource override content.

  • UserInterface/Models/Script.js:

(WI.Script.prototype.get mimeType):
Seems like this should have a default value given there may not be a resource.

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.show):
Better handling here, since the utilities expects a number not a string.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.createObjectURL):

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover):
Use currentRevision more appropriately.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype._processContent):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype._textEditorContentDidChange):

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound):
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges):
(WI.CSSManager.prototype._resourceContentDidChange):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):
Update revision content more explicitly.

LayoutTests:

  • inspector/unit-tests/mimetype-utilities-expected.txt:
  • inspector/unit-tests/mimetype-utilities.html:

Test new utilities.

  • http/tests/inspector/network/fetch-response-body.html:
  • http/tests/inspector/network/xhr-response-body.html:

Renamed utilities.

1:42 PM Changeset in webkit [251023] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Layout test fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=202863
<rdar://51724211>

Reviewed by Tim Horton.

Another case where we are getting more touchmoves during a drag than we expected.
However, this time we still want to listen, and we can't use { once: true } because
there are multiple sequential drags. Instead, keep a list of the moves we've seen and
only output the first one.

Also, remove the coordinate logging for the move, since it might not be consistent.

  • fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener-expected.txt:
  • fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html:
1:40 PM Changeset in webkit [251022] by Chris Dumez
  • 19 edits
    1 copy
    1 add in trunk

Move SuspendedPage logic from WebProcessPool to new WebBackForwardCache class
https://bugs.webkit.org/show_bug.cgi?id=202660

Reviewed by Antti Koivisto.

Source/WebKit:

Move SuspendedPage logic from WebProcessPool to new WebBackForwardCache class. This is
a first step towards implementing back / forward cache handling in the UIProcess.

The following changes were made:

  1. SuspendedPageProxy objects are now normally owned by their associated WebBackForwardListItem (Similarly to CachedPage objects being owned by their HistoryItem in WebCore) instead of the WebProcessPool.
  2. A new WebBackForwardCache class is introduced to cap the number of cached pages and clear them (similary to the PageCache in WebCore).
  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::~WebBackForwardListItem):
(WebKit::WebBackForwardListItem::wasRemovedFromBackForwardList):
(WebKit::WebBackForwardListItem::setSuspendedPage):
(WebKit::WebBackForwardListItem::takeSuspendedPage):
(WebKit::WebBackForwardListItem::suspendedPage const):

  • Shared/WebBackForwardListItem.h:
  • Sources.txt:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _maximumSuspendedPageCount]):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:
  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::setBackForwardListItem):
(WebKit::SuspendedPageProxy::clearBackForwardListItem):
(WebKit::SuspendedPageProxy::backForwardCache const):
(WebKit::SuspendedPageProxy::suspensionTimedOut):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.h:
  • UIProcess/WebAuthentication/Mock/MockHidService.h:
  • UIProcess/WebBackForwardCache.cpp: Added.

(WebKit::WebBackForwardCache::removeOldestEntry):
(WebKit::WebBackForwardCache::setCapacity):
(WebKit::WebBackForwardCache::addEntry):
(WebKit::WebBackForwardCache::removeEntry):
(WebKit::WebBackForwardCache::takeEntry):
(WebKit::WebBackForwardCache::removeEntriesForProcess):
(WebKit::WebBackForwardCache::removeEntriesForPage):
(WebKit::WebBackForwardCache::removeEntriesMatching):
(WebKit::WebBackForwardCache::clear):

  • UIProcess/WebBackForwardCache.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockHidService.h.

(WebKit::WebBackForwardCache::capacity const):
(WebKit::WebBackForwardCache::size const):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::didRemoveItem):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::backForwardCache const):
(WebKit::WebPageProxy::shouldUseBackForwardCache const):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::enterAcceleratedCompositingMode):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::process const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_webProcessCache):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::handleMemoryPressureWarning):
(WebKit::WebProcessPool::updateBackForwardCacheCapacity):
(WebKit::WebProcessPool::setCacheModel):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Drop test that relied on reusing a SuspendedPage's process from a loadHTMLStringLoad (optimization).
This no longer works now that SuspendedPages are owned by their associated back/forward item because
we currently do not create a back/forward item for loadHTMLString requests. Suspending a page for a
loadHTMLString was also wasteful since there was no way to restore that page (given that there was
no WebBackForwardListItem to go back to).

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1:38 PM Changeset in webkit [251021] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Only use CFNetwork SPI for metrics where needed
https://bugs.webkit.org/show_bug.cgi?id=202825

Patch by Alex Christensen <achristensen@webkit.org> on 2019-10-11
Reviewed by Joseph Pecoraro.

Source/WebCore:

  • platform/network/NetworkLoadMetrics.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(stringForSSLProtocolVersion):
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

Source/WTF:

  • wtf/Platform.h:
1:35 PM Changeset in webkit [251020] by BJ Burg
  • 3 edits in trunk/Tools

Remove some dead code in webkitpy's mac.py
https://bugs.webkit.org/show_bug.cgi?id=202853

Reviewed by Alexey Proskuryakov.

  • Remove _build_java_test_support as it no longer does anything.
  • Remove _check_port_build as it's only used to build Java test support.
  • Remove unused is_mavericks() function.
  • Remove a log stripping pattern that was fixed several releases ago.
  • Scripts/webkitpy/port/base.py:

(Port.check_build):
(Port.check_api_test_build):
(Port._check_driver):
(Port._check_port_build): Deleted.

  • Scripts/webkitpy/port/mac.py:

(MacPort.operating_system):
(MacPort.default_child_processes):
(MacPort.logging_patterns_to_strip):
(MacPort.is_mavericks): Deleted.
(MacPort._build_java_test_support): Deleted.
(MacPort._check_port_build): Deleted.

1:26 PM Changeset in webkit [251019] by Chris Dumez
  • 3 edits
    2 adds in trunk

Pages frequently fail to enter the back/forward cache due to frames with a quick redirect coming
https://bugs.webkit.org/show_bug.cgi?id=202768
<rdar://problem/56132022>

Reviewed by Alex Christensen.

Source/WebCore:

When a quick redirect is scheduled with the navigation scheduler, we set the m_quickRedirectComing flag.
This flag is supposed to get unset if the navigation gets cancelled and when the navigation actually
happens. However, for a navigation to a javascript: URL, we would return early after executing the JS
and fail to reset the m_quickRedirectComing flag. Later on, we would fail to enter the page cache because
we would think that the iframe still has a quick redirect scheduled.

Test: fast/history/page-cache-iframe-js-url.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
Reset the m_quickRedirectComing flag if we return early after executing
the javascript URL.

(WebCore::FrameLoader::stopForPageCache):
Stop policy checks & cancel scheduled navigations after stopping loads. Stopping loads may
run script which may in theory schedule new navigations. This is hardening.

LayoutTests:

Add lauout test coverage.

  • fast/history/page-cache-iframe-js-url-expected.txt: Added.
  • fast/history/page-cache-iframe-js-url.html: Added.
1:20 PM Changeset in webkit [251018] by achristensen@apple.com
  • 331 edits
    16 adds
    17 deletes in trunk/Source/ThirdParty/ANGLE

Roll ANGLE for ETC extensions and EGL_ANGLE_device_cgl
https://bugs.webkit.org/show_bug.cgi?id=202780

Roll ANGLE to c5e0ac757a112a24a0118d434e652fd7b558e6a8 via new
update-angle.sh script.

Patch by Kenneth Russell <kbr@chromium.org> on 2019-10-11
Reviewed by Alex Christensen.

  • .gitignore:
  • ANGLE.plist:
  • ANGLE.xcodeproj/project.pbxproj:
  • BUILD.gn:
  • CMakeLists.txt:
  • CONTRIBUTORS:
  • DEPS:
  • GLESv2.cmake:
  • OWNERS:
  • PRESUBMIT.py:

(_CheckExportValidity):
(CheckChangeOnUpload):
(CheckChangeOnCommit):

  • README.md:
  • android/angle_apk.gni:
  • build_overrides/angle.gni:
  • changes.diff:
  • doc/DevSetup.md:
  • dotfile_settings.gni:
  • extensions/ANGLE_compressed_texture_etc.txt: Added.
  • extensions/EGL_ANGLE_device_cgl.txt: Added.
  • extensions/EGL_ANGLE_feature_control.txt:
  • extensions/EGL_ANGLE_platform_angle_d3d11on12.txt: Added.
  • extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt: Added.
  • extensions/EGL_ANGLE_platform_angle_metal.txt: Added.
  • gni/angle.gni:
  • include/EGL/eglext_angle.h:
  • include/platform/Feature.h:

(angle::Feature::Feature):

  • include/platform/FeaturesD3D.h:
  • include/platform/FeaturesGL.h:
  • include/platform/FeaturesVk.h:
  • include/platform/FrontendFeatures.h:
  • samples/WindowTest/WindowTest.cpp:
  • samples/gles1/DrawTexture.cpp:
  • samples/multi_texture/MultiTexture.cpp:
  • samples/multiple_draw_buffers/MultipleDrawBuffers.cpp:
  • samples/particle_system/ParticleSystem.cpp:
  • samples/sample_util/SampleApplication.cpp:

(SampleApplication::SampleApplication):

  • samples/sample_util/SampleApplication.h:
  • scripts/code_generation_hashes/ANGLE_format.json:
  • scripts/code_generation_hashes/ANGLE_load_functions_table.json:
  • scripts/code_generation_hashes/D3D11_format.json:
  • scripts/code_generation_hashes/DXGI_format.json:
  • scripts/code_generation_hashes/GL_EGL_WGL_loader.json:
  • scripts/code_generation_hashes/GL_EGL_entry_points.json:
  • scripts/code_generation_hashes/OpenGL_dispatch_table.json:
  • scripts/code_generation_hashes/Static_builtins.json:
  • scripts/code_generation_hashes/Vulkan_format.json:
  • scripts/code_generation_hashes/Vulkan_internal_shader_programs.json:
  • scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json:
  • scripts/code_generation_hashes/proc_table.json:
  • scripts/export_targets.py:

(has_all_includes):

  • scripts/generate_entry_points.py:

(get_resource_id_types):
(format_resource_id_types):
(write_capture_helper_header):
(get_resource_id_type_from_param_type):
(format_param_type_to_resource_id_type_case):
(format_param_type_resource_id_cases):
(format_resource_id_type_name_case):
(write_capture_helper_source):

  • scripts/generate_vulkan_layers_json.py:

(main):

  • scripts/registry_xml.py:
  • src/common/PackedEnums.cpp:

(gl::operator<<):

  • src/common/PackedEnums.h:

(angle::EnumSize<E>):
(gl::FromGLenum<VertexAttribType>):
(gl::ToGLenum):
(gl::ValueEquals):
(gl::operator==):
(gl::operator!=):

  • src/common/android_util.cpp:

(angle::android::NativePixelFormatToGLInternalFormat):

  • src/common/angleutils.h:
  • src/common/debug.h:
  • src/common/platform.h:
  • src/common/system_utils_winuwp.cpp: Added.

(angle::SetEnvironmentVar):
(angle::GetEnvironmentVar):
(angle::GetSharedLibraryExtension):
(angle::GetPathSeparator):
(angle::GetCurrentTime):
(angle::UwpLibrary::UwpLibrary):
(angle::OpenSharedLibrary):
(angle::IsDebuggerAttached):
(angle::BreakDebugger):

  • src/common/tls.cpp:

(CreateTLSIndex):
(DestroyTLSIndex):
(SetTLSValue):
(GetTLSValue):

  • src/common/tls.h:
  • src/common/utilities.cpp:

(gl::StripLastArrayIndex):

  • src/common/utilities.h:
  • src/compiler.gni:
  • src/compiler/translator/Compiler.cpp:

(sh::TCompiler::compileTreeImpl):

  • src/compiler/translator/ImmutableString_ESSL_autogen.cpp:
  • src/compiler/translator/ImmutableString_autogen.cpp:
  • src/compiler/translator/IntermNode.h:

(sh::TIntermPreprocessorDirective::getDirective const): Deleted.
(sh::TIntermPreprocessorDirective::getCommand const): Deleted.

  • src/compiler/translator/ParseContext.cpp:

(sh::TParseContext::TParseContext):
(sh::TParseContext::checkIsValidArraySize):
(sh::TParseContext::parseFunctionDeclarator):

  • src/compiler/translator/ParseContext.h:

(sh::TParseContext::getOutputType const):

  • src/compiler/translator/ShaderVars.cpp:

(sh::ShaderVariable::operator=):

  • src/compiler/translator/SymbolTable.cpp:

(sh::TSymbolTable::setGlInArraySize):
(sh::TSymbolTable::gl_FragData const):
(sh::TSymbolTable::gl_SecondaryFragDataEXT const):
(sh::SymbolRule::get const):
(sh::FindMangledBuiltIn):
(sh::UnmangledEntry::matches const):

  • src/compiler/translator/SymbolTable.h:

(sh::SymbolRule::SymbolRule):
(sh::SymbolRule::Get):
(sh::UnmangledEntry::UnmangledEntry):
(sh::SymbolEntry::SymbolEntry): Deleted.

  • src/compiler/translator/SymbolTable_ESSL_autogen.cpp:

(sh::BuiltInVariable::angle_BaseInstance):
(sh::BuiltInVariable::angle_BaseVertex):
(sh::BuiltInVariable::gl_BaseInstance):
(sh::BuiltInVariable::gl_BaseVertex):
(sh::BuiltInVariable::gl_DrawID):
(sh::BuiltInVariable::gl_FragColor):
(sh::BuiltInVariable::gl_FragCoord):
(sh::BuiltInVariable::gl_FragDepth):
(sh::BuiltInVariable::gl_FrontFacing):
(sh::BuiltInVariable::gl_GlobalInvocationID):
(sh::BuiltInVariable::gl_InstanceID):
(sh::BuiltInVariable::gl_InstanceIndex):
(sh::BuiltInVariable::gl_InvocationID):
(sh::BuiltInVariable::gl_LastFragColor):
(sh::BuiltInVariable::gl_LastFragColorARM):
(sh::BuiltInVariable::gl_Layer):
(sh::BuiltInVariable::gl_LayerGS):
(sh::BuiltInVariable::gl_LayerVS):
(sh::BuiltInVariable::gl_LocalInvocationID):
(sh::BuiltInVariable::gl_LocalInvocationIndex):
(sh::BuiltInVariable::gl_NumWorkGroups):
(sh::BuiltInVariable::gl_PointCoord):
(sh::BuiltInVariable::gl_PointSize):
(sh::BuiltInVariable::gl_Position):
(sh::BuiltInVariable::gl_PrimitiveID):
(sh::BuiltInVariable::gl_PrimitiveIDGS):
(sh::BuiltInVariable::gl_PrimitiveIDIn):
(sh::BuiltInVariable::gl_SecondaryFragColorEXT):
(sh::BuiltInVariable::gl_VertexID):
(sh::BuiltInVariable::gl_VertexIndex):
(sh::BuiltInVariable::gl_ViewID_OVR):
(sh::BuiltInVariable::gl_ViewportIndex):
(sh::BuiltInVariable::gl_WorkGroupID):
(sh::BuiltInVariable::gl_WorkGroupSize):
(sh::TSymbolTable::initializeBuiltInVariables):
(sh::TSymbolTable::findBuiltIn const):
(sh::TSymbolTable::isUnmangledBuiltInName const):
(sh::TSymbolTable::getSymbol const): Deleted.
(sh::TSymbolTable::getUnmangled const): Deleted.
(sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted.

  • src/compiler/translator/SymbolTable_autogen.cpp:

(sh::BuiltInVariable::angle_BaseInstance):
(sh::BuiltInVariable::angle_BaseVertex):
(sh::BuiltInVariable::gl_BaseInstance):
(sh::BuiltInVariable::gl_BaseVertex):
(sh::BuiltInVariable::gl_DrawID):
(sh::BuiltInVariable::gl_FragColor):
(sh::BuiltInVariable::gl_FragCoord):
(sh::BuiltInVariable::gl_FragDepth):
(sh::BuiltInVariable::gl_FrontFacing):
(sh::BuiltInVariable::gl_GlobalInvocationID):
(sh::BuiltInVariable::gl_InstanceID):
(sh::BuiltInVariable::gl_InstanceIndex):
(sh::BuiltInVariable::gl_InvocationID):
(sh::BuiltInVariable::gl_LastFragColor):
(sh::BuiltInVariable::gl_LastFragColorARM):
(sh::BuiltInVariable::gl_Layer):
(sh::BuiltInVariable::gl_LayerGS):
(sh::BuiltInVariable::gl_LayerVS):
(sh::BuiltInVariable::gl_LocalInvocationID):
(sh::BuiltInVariable::gl_LocalInvocationIndex):
(sh::BuiltInVariable::gl_NumWorkGroups):
(sh::BuiltInVariable::gl_PointCoord):
(sh::BuiltInVariable::gl_PointSize):
(sh::BuiltInVariable::gl_Position):
(sh::BuiltInVariable::gl_PrimitiveID):
(sh::BuiltInVariable::gl_PrimitiveIDGS):
(sh::BuiltInVariable::gl_PrimitiveIDIn):
(sh::BuiltInVariable::gl_SecondaryFragColorEXT):
(sh::BuiltInVariable::gl_VertexID):
(sh::BuiltInVariable::gl_VertexIndex):
(sh::BuiltInVariable::gl_ViewID_OVR):
(sh::BuiltInVariable::gl_ViewportIndex):
(sh::BuiltInVariable::gl_WorkGroupID):
(sh::BuiltInVariable::gl_WorkGroupSize):
(sh::TSymbolTable::initializeBuiltInVariables):
(sh::TSymbolTable::findBuiltIn const):
(sh::TSymbolTable::isUnmangledBuiltInName const):
(sh::TSymbolTable::getSymbol const): Deleted.
(sh::TSymbolTable::getUnmangled const): Deleted.
(sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted.

  • src/compiler/translator/SymbolTable_autogen.h:
  • src/compiler/translator/TranslatorVulkan.cpp:

(sh::TranslatorVulkan::translate):

  • src/compiler/translator/gen_builtin_symbols.py:

(get_shader_version_for_level):
(GroupedList.init):
(GroupedList.add_entry):
(GroupedList.format_rule):
(GroupedList):
(GroupedList.format_rules):
(GroupedList.get_rules):
(GroupedList.get_names):
(GroupedList.get_offsets):
(GroupedList.update_arrays):
(GroupedList.update_arrays.add_rule):
(UnmangledGroupedList.add_entry):
(UnmangledGroupedList.get_array):
(define_constexpr_variable):
(process_single_function_group):
(process_function_group):
(process_single_variable_group):
(GroupedList.add_obj): Deleted.
(GroupedList.get_array): Deleted.
(UnmangledGroupedList.add_obj): Deleted.

  • src/feature_support_util/feature_support_util.cpp:
  • src/gpu_info_util/SystemInfo_win.cpp:

(angle::GetSystemInfo):

  • src/image_util/loadimage.cpp:

(angle::LoadD24S8ToD32F):
(angle::LoadD32ToD32FX32):
(angle::LoadD32ToD32F):

  • src/image_util/loadimage.h:
  • src/libANGLE/Buffer.cpp:

(gl::Buffer::Buffer):

  • src/libANGLE/Buffer.h:
  • src/libANGLE/Caps.cpp:

(gl::DetermineHalfFloatTextureFilteringSupport):
(gl::DetermineFloatTextureFilteringSupport):
(gl::Extensions::setTextureExtensionSupport):
(gl::GetExtensionInfoMap):
(egl::DisplayExtensions::getStrings const):
(egl::DeviceExtensions::getStrings const):
(egl::ClientExtensions::getStrings const):

  • src/libANGLE/Caps.h:
  • src/libANGLE/Constants.h:
  • src/libANGLE/Context.cpp:

(gl::Context::Context):
(gl::Context::initialize):
(gl::Context::onDestroy):
(gl::Context::bindImageTexture):
(gl::Context::getQueryiv):
(gl::Context::detachTexture):
(gl::Context::generateSupportedExtensions const):
(gl::Context::initCaps):
(gl::Context::onSubjectStateChange):
(gl::StateCache::updateActiveAttribsMask):
(gl::StateCache::updateVertexAttribTypesValidation):

  • src/libANGLE/Context.h:
  • src/libANGLE/Device.cpp:

(egl::Device::getAttribute):
(egl::Device::getDevice): Deleted.

  • src/libANGLE/Device.h:
  • src/libANGLE/Display.cpp:

(egl::Display::createContext):
(egl::GenerateClientExtensions):
(egl::Display::isValidNativeDisplay):
(egl::Display::initializeFrontendFeatures):
(egl::Display::queryStringi):

  • src/libANGLE/ErrorStrings.h:
  • src/libANGLE/Fence.h:
  • src/libANGLE/FrameCapture.cpp:

(angle::ParamCapture::ParamCapture):
(angle::ParamCapture::operator=):
(angle::ParamBuffer::ParamBuffer):
(angle::ParamBuffer::operator=):
(angle::ParamBuffer::getParam):
(angle::ParamBuffer::getParam const):
(angle::ParamBuffer::addParam):
(angle::ParamBuffer::addReturnValue):
(angle::ParamBuffer::getClientArrayPointerParameter):
(angle::CallCapture::CallCapture):
(angle::CallCapture::operator=):
(angle::CallCapture::name const):
(angle::ReplayContext::ReplayContext):
(angle::ReplayContext::~ReplayContext):
(angle::FrameCapture::FrameCapture):
(angle::FrameCapture::maybeCaptureClientData):
(angle::FrameCapture::captureCall):
(angle::FrameCapture::captureUpdateResourceIDs):
(angle::FrameCapture::maybeUpdateResourceIDs):
(angle::FrameCapture::captureClientArraySnapshot):
(angle::FrameCapture::onEndFrame):
(angle::DataCounters::getAndIncrement):
(angle::FrameCapture::reset):
(angle::CaptureGenHandlesImpl):
(angle::WriteParamValueToStream<ParamType::TBufferID>):
(angle::WriteParamValueToStream<ParamType::TFenceNVID>):
(angle::WriteParamValueToStream<ParamType::TFramebufferID>):
(angle::WriteParamValueToStream<ParamType::TMemoryObjectID>):
(angle::WriteParamValueToStream<ParamType::TPathID>):
(angle::WriteParamValueToStream<ParamType::TProgramPipelineID>):
(angle::WriteParamValueToStream<ParamType::TQueryID>):
(angle::WriteParamValueToStream<ParamType::TRenderbufferID>):
(angle::WriteParamValueToStream<ParamType::TSamplerID>):
(angle::WriteParamValueToStream<ParamType::TSemaphoreID>):
(angle::WriteParamValueToStream<ParamType::TShaderProgramID>):
(angle::WriteParamValueToStream<ParamType::TTextureID>):
(angle::WriteParamValueToStream<ParamType::TTransformFeedbackID>):
(angle::WriteParamValueToStream<ParamType::TVertexArrayID>):
(angle::CallCapture::~CallCapture): Deleted.
(angle::ParamBuffer::~ParamBuffer): Deleted.
(angle::ParamCapture::~ParamCapture): Deleted.
(angle::FrameCapture::~FrameCapture): Deleted.
(angle::FrameCapture::anyClientArray const): Deleted.
(angle::FrameCapture::saveCapturedFrameAsCpp): Deleted.
(angle::FrameCapture::getAndIncrementCounter): Deleted.
(angle::FrameCapture::writeStringPointerParamReplay): Deleted.
(angle::FrameCapture::writeRenderbufferIDPointerParamReplay): Deleted.
(angle::FrameCapture::writeBinaryParamReplay): Deleted.
(angle::FrameCapture::writeCallReplay): Deleted.

  • src/libANGLE/FrameCapture.h:

(angle::CaptureGenHandles):

  • src/libANGLE/FrameCapture_mock.cpp: Added.

(angle::CallCapture::~CallCapture):
(angle::ParamBuffer::~ParamBuffer):
(angle::ParamCapture::~ParamCapture):
(angle::FrameCapture::FrameCapture):
(angle::FrameCapture::~FrameCapture):
(angle::FrameCapture::onEndFrame):
(angle::FrameCapture::replay):

  • src/libANGLE/Framebuffer.cpp:

(gl::Framebuffer::formsRenderingFeedbackLoopWith const):
(gl::Framebuffer::formsCopyingFeedbackLoopWith const):

  • src/libANGLE/Framebuffer.h:
  • src/libANGLE/FramebufferAttachment.cpp:

(gl::FramebufferAttachment::getRedSize const):
(gl::FramebufferAttachment::getGreenSize const):
(gl::FramebufferAttachment::getBlueSize const):
(gl::FramebufferAttachment::getAlphaSize const):
(gl::FramebufferAttachment::getDepthSize const):
(gl::FramebufferAttachment::getStencilSize const):

  • src/libANGLE/FramebufferAttachment.h:
  • src/libANGLE/GLES1State.cpp:

(gl::GLES1State::getActiveAttributesMask const):

  • src/libANGLE/GLES1State.h:
  • src/libANGLE/ImageIndex.cpp:
  • src/libANGLE/ImageIndex.h:
  • src/libANGLE/MemoryObject.cpp:

(gl::MemoryObject::MemoryObject):

  • src/libANGLE/MemoryObject.h:
  • src/libANGLE/MemoryProgramCache.cpp:
  • src/libANGLE/Program.cpp:

(gl::ProgramBindings::bindLocation):
(gl::ProgramBindings::getBindingByName const):
(gl::ProgramBindings::getBinding const):
(gl::ProgramBindings::begin const):
(gl::ProgramBindings::end const):
(gl::ProgramAliasedBindings::ProgramAliasedBindings):
(gl::ProgramAliasedBindings::~ProgramAliasedBindings):
(gl::ProgramAliasedBindings::bindLocation):
(gl::ProgramAliasedBindings::getBindingByName const):
(gl::ProgramAliasedBindings::getBinding const):
(gl::ProgramAliasedBindings::begin const):
(gl::ProgramAliasedBindings::end const):
(gl::ProgramState::getAttributeLocation const):
(gl::ProgramState::getFirstAttachedShaderStageType const):
(gl::ProgramState::getLastAttachedShaderStageType const):
(gl::Program::getFragmentInputBindingInfo const):
(gl::Program::link):
(gl::ProgramState::updateProgramInterfaceInputs):
(gl::ProgramState::updateProgramInterfaceOutputs):
(gl::Program::unlink):
(gl::Program::getActiveAttribute const):
(gl::Program::getActiveAttributeCount const):
(gl::Program::getActiveAttributeMaxLength const):
(gl::Program::getAttributes const):
(gl::Program::getInputResource const):
(gl::Program::getInputResourceIndex const):
(gl::Program::getResourceMaxNameSize const):
(gl::Program::getInputResourceMaxNameSize const):
(gl::Program::getOutputResourceMaxNameSize const):
(gl::Program::getResourceLocation const):
(gl::Program::getInputResourceLocation const):
(gl::Program::getOutputResourceLocation const):
(gl::Program::getOutputResourceIndex const):
(gl::Program::getResourceName const):
(gl::Program::getInputResourceName const):
(gl::Program::getOutputResourceName const):
(gl::Program::getUniformResourceName const):
(gl::Program::getBufferVariableResourceName const):
(gl::Program::getOutputResource const):
(gl::Program::getUniformLocationBindings const):
(gl::Program::linkUniforms):
(gl::Program::linkAttributes):
(gl::Program::linkValidateGlobalNames const):
(gl::Program::getMergedVaryings const):
(gl::Program::linkOutputVariables):
(gl::Program::serialize const):
(gl::Program::deserialize):

  • src/libANGLE/Program.h:

(gl::ProgramVaryingRef::get const):

  • src/libANGLE/ProgramLinkedResources.cpp:

(gl::UniformLinker::link):
(gl::UniformLinker::indexUniforms):
(gl::UniformLinker::gatherUniformLocationsAndCheckConflicts):

  • src/libANGLE/ProgramLinkedResources.h:
  • src/libANGLE/ProgramPipeline.cpp:

(gl::ProgramPipeline::ProgramPipeline):

  • src/libANGLE/ProgramPipeline.h:
  • src/libANGLE/Query.cpp:

(gl::Query::Query):

  • src/libANGLE/Query.h:
  • src/libANGLE/RefCountObject.h:

(gl::RefCountObject::RefCountObject):
(gl::RefCountObject::id const):
(gl::BindingPointer::id const):

  • src/libANGLE/Renderbuffer.cpp:

(gl::Renderbuffer::Renderbuffer):
(gl::Renderbuffer::getId const):

  • src/libANGLE/Renderbuffer.h:
  • src/libANGLE/Sampler.cpp:

(gl::Sampler::Sampler):

  • src/libANGLE/Sampler.h:
  • src/libANGLE/Semaphore.cpp:

(gl::Semaphore::Semaphore):

  • src/libANGLE/Semaphore.h:
  • src/libANGLE/Shader.cpp:

(gl::Shader::resolveCompile):
(gl::Shader::getTransformFeedbackVaryingMappedName):

  • src/libANGLE/State.cpp:

(gl::State::getSamplerTextureId const):
(gl::State::detachTexture):
(gl::State::detachSampler):
(gl::State::detachRenderbuffer):
(gl::State::removeTransformFeedbackBinding):
(gl::State::getActiveQueryId const):
(gl::State::detachBuffer):
(gl::State::getIntegerv):
(gl::State::getIntegeri_v):
(gl::State::syncImages):
(gl::State::onImageStateChange):

  • src/libANGLE/State.h:

(gl::State::getSamplerId const):
(gl::State::getRenderbufferId const):

  • src/libANGLE/Texture.cpp:

(gl::Texture::Texture):
(gl::Texture::setStorage):
(gl::Texture::getId const):

  • src/libANGLE/Texture.h:
  • src/libANGLE/TransformFeedback.cpp:

(gl::TransformFeedback::TransformFeedback):
(gl::TransformFeedback::detachBuffer):

  • src/libANGLE/TransformFeedback.h:
  • src/libANGLE/VaryingPacking.cpp:

(gl::VaryingPacking::collectAndPackUserVaryings):
(gl::VaryingPacking::packUserVaryings):

  • src/libANGLE/VertexArray.cpp:

(gl::VertexArray::detachBuffer):
(gl::VertexArray::bindVertexBufferImpl):

  • src/libANGLE/VertexArray.h:
  • src/libANGLE/capture_gles_2_0_params.cpp:

(gl::CaptureDeleteBuffers_buffersPacked):
(gl::CaptureDeleteFramebuffers_framebuffersPacked):
(gl::CaptureDeleteTextures_texturesPacked):
(gl::CaptureGenBuffers_buffersPacked):
(gl::CaptureGenFramebuffers_framebuffersPacked):
(gl::CaptureGenRenderbuffers_renderbuffersPacked):
(gl::CaptureGenTextures_texturesPacked):
(gl::CaptureShaderSource_string):

  • src/libANGLE/capture_gles_3_0_params.cpp:

(gl::CaptureDeleteQueries_idsPacked):
(gl::CaptureDeleteSamplers_samplersPacked):
(gl::CaptureDeleteTransformFeedbacks_idsPacked):
(gl::CaptureDeleteVertexArrays_arraysPacked):
(gl::CaptureGenQueries_idsPacked):
(gl::CaptureGenSamplers_samplersPacked):
(gl::CaptureGenTransformFeedbacks_idsPacked):
(gl::CaptureGenVertexArrays_arraysPacked):

  • src/libANGLE/capture_gles_3_1_params.cpp:

(gl::CaptureDeleteProgramPipelines_pipelinesPacked):
(gl::CaptureGenProgramPipelines_pipelinesPacked):

  • src/libANGLE/capture_gles_ext_params.cpp:

(gl::CaptureDeleteQueriesEXT_idsPacked):
(gl::CaptureGenQueriesEXT_idsPacked):

  • src/libANGLE/features.h:
  • src/libANGLE/formatutils.cpp:

(gl::UnsizedHalfFloatOESRGBATextureAttachmentSupport):
(gl::BuildInternalFormatInfoMap):
(gl::InternalFormat::computeDepthPitch const):
(gl::GetVertexFormatID):
(gl::GetVertexFormatFromID):
(gl::GetVertexFormatSize):

  • src/libANGLE/frame_capture_utils_autogen.cpp:

(angle::GetResourceIDTypeFromParamType):
(angle::GetResourceIDTypeName):

  • src/libANGLE/frame_capture_utils_autogen.h:
  • src/libANGLE/queryutils.cpp:

(gl::GetBufferVariableResourceProperty):
(gl::QueryProgramResourceLocation):
(gl::QueryProgramResourceiv):
(egl::QueryContextAttrib):

  • src/libANGLE/renderer/DeviceImpl.h:
  • src/libANGLE/renderer/Format.h:

(angle::Format::isVertexTypeHalfFloat const):

  • src/libANGLE/renderer/FormatID_autogen.h:
  • src/libANGLE/renderer/Format_table_autogen.cpp:

(angle::Format::InternalFormatToID):

  • src/libANGLE/renderer/angle_format.py:

(gl_format_channels):
(get_vertex_copy_function):

  • src/libANGLE/renderer/angle_format_map.json:
  • src/libANGLE/renderer/copyvertex.h:
  • src/libANGLE/renderer/copyvertex.inc.h:

(rx::CopyTo32FVertexData):
(rx::CopyXYZ10ToXYZW32FVertexData):
(rx::CopyW2XYZ10ToXYZW32FVertexData):

  • src/libANGLE/renderer/d3d/DeviceD3D.cpp:

(rx::DeviceD3D::getAttribute):
(rx::DeviceD3D::getDevice): Deleted.

  • src/libANGLE/renderer/d3d/DeviceD3D.h:
  • src/libANGLE/renderer/d3d/HLSLCompiler.cpp:

(rx::HLSLCompiler::ensureInitialized):
(rx::HLSLCompiler::compileToBinary):

  • src/libANGLE/renderer/d3d/ProgramD3D.cpp:

(rx::ProgramD3D::getVertexExecutableForCachedInputLayout):

  • src/libANGLE/renderer/d3d/RendererD3D.cpp:

(rx::DefaultGLErrorCode):

  • src/libANGLE/renderer/d3d/ShaderD3D.cpp:

(rx::ShaderD3D::compile):

  • src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp:

(rx::Buffer11::getConstantBufferRange):
(rx::Buffer11::NativeStorage::FillBufferDesc):

  • src/libANGLE/renderer/d3d/d3d11/Context11.cpp:

(rx::Context11::drawArrays):
(rx::Context11::drawArraysInstanced):
(rx::Context11::drawArraysInstancedBaseInstance):
(rx::Context11::drawArraysIndirect):

  • src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp:

(rx::DebugAnnotator11::initialize):

  • src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp:

(rx::Renderer11::Renderer11):
(rx::Renderer11::initialize):
(rx::Renderer11::callD3D11On12CreateDevice):
(rx::Renderer11::initializeD3DDevice):
(rx::Renderer11::generateDisplayExtensions const):
(rx::Renderer11::isValidNativeWindow const):
(rx::Renderer11::createNativeWindow const):
(rx::Renderer11::drawArrays):
(rx::Renderer11::release):
(rx::Renderer11::getShareHandleSupport const):
(rx::Renderer11::copyImageInternal):

  • src/libANGLE/renderer/d3d/d3d11/Renderer11.h:
  • src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp:

(rx::TextureStorage11::getSRVForImage):
(rx::TextureStorage11::getUAVForImage):

  • src/libANGLE/renderer/d3d/d3d11/Trim11.cpp:

(rx::Trim11::trim):
(rx::Trim11::registerForRendererTrimRequest):
(rx::Trim11::unregisterForRendererTrimRequest):

  • src/libANGLE/renderer/d3d/d3d11/Trim11.h:
  • src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp:

(rx::RoHelper::SupportedWindowsRelease):

  • src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp:

(rx::d3d11_gl::GenerateCaps):
(rx::d3d11::InitializeFeatures):

  • src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h:
  • src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp:

(rx::NativeWindow11WinRT::createSwapChain):

  • src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h:
  • src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h:
  • src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp:

(rx::d3d9::InitializeFeatures):

  • src/libANGLE/renderer/gen_angle_format_table.py:

(ceil_int):
(get_channel_struct):
(get_mip_generation_function):

  • src/libANGLE/renderer/gl/BlitGL.cpp:

(rx::BlitGL::copyImageToLUMAWorkaroundTexture):
(rx::BlitGL::copySubImageToLUMAWorkaroundTexture):
(rx::BlitGL::blitColorBufferWithShader):
(rx::BlitGL::copySubTexture):
(rx::BlitGL::copySubTextureCPUReadback):
(rx::BlitGL::copyTexSubImage):
(rx::BlitGL::clearRenderableTexture):
(rx::BlitGL::clearRenderbuffer):
(rx::BlitGL::clearFramebuffer):
(rx::BlitGL::clearRenderableTextureAlphaToOne):
(rx::BlitGL::initializeResources):
(rx::BlitGL::orphanScratchTextures):
(rx::BlitGL::setScratchTextureParameter):
(rx::BlitGL::getBlitProgram):
(rx::BlitGL::getBlitProgramType): Deleted.

  • src/libANGLE/renderer/gl/BlitGL.h:
  • src/libANGLE/renderer/gl/ContextGL.cpp:

(rx::ContextGL::createRenderbuffer):
(rx::ContextGL::setDrawArraysState):
(rx::ContextGL::setDrawElementsState):
(rx::ContextGL::drawArrays):
(rx::ContextGL::updateAttributesForBaseInstance):
(rx::ContextGL::resetUpdatedAttributes):
(rx::ContextGL::drawArraysInstancedBaseInstance):
(rx::ContextGL::drawElements):
(rx::ContextGL::drawElementsInstancedBaseVertexBaseInstance):
(rx::ContextGL::validateState const):

  • src/libANGLE/renderer/gl/ContextGL.h:
  • src/libANGLE/renderer/gl/ProgramGL.cpp:

(rx::ProgramGL::link):

  • src/libANGLE/renderer/gl/RenderbufferGL.cpp:

(rx::RenderbufferGL::RenderbufferGL):
(rx::RenderbufferGL::~RenderbufferGL):
(rx::RenderbufferGL::onDestroy):
(rx::RenderbufferGL::setStorage):
(rx::RenderbufferGL::setStorageMultisample):
(rx::RenderbufferGL::initializeContents):

  • src/libANGLE/renderer/gl/RenderbufferGL.h:
  • src/libANGLE/renderer/gl/ShaderGL.cpp:

(rx::ShaderGL::compile):

  • src/libANGLE/renderer/gl/StateManagerGL.cpp:

(rx::StateManagerGL::bindBufferBase):
(rx::StateManagerGL::bindBufferRange):
(rx::StateManagerGL::validateState const):

  • src/libANGLE/renderer/gl/StateManagerGL.h:
  • src/libANGLE/renderer/gl/SurfaceGL.cpp:

(rx::SurfaceGL::initializeContents):

  • src/libANGLE/renderer/gl/TextureGL.cpp:

(rx::TextureGL::setImageHelper):
(rx::TextureGL::setSubImage):
(rx::TextureGL::setCompressedImage):
(rx::TextureGL::setCompressedSubImage):
(rx::TextureGL::copyImage):
(rx::TextureGL::copySubTextureHelper):
(rx::TextureGL::setStorage):
(rx::TextureGL::setImageExternal):
(rx::TextureGL::setStorageMultisample):
(rx::TextureGL::setStorageExternalMemory):
(rx::TextureGL::setEGLImageTarget):
(rx::TextureGL::setLevelInfo):
(rx::TextureGL::initializeContents):

  • src/libANGLE/renderer/gl/VertexArrayGL.cpp:

(rx::VertexArrayGL::streamAttributes const):
(rx::VertexArrayGL::validateState const):

  • src/libANGLE/renderer/gl/VertexArrayGL.h:
  • src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: Added.

(rx::DeviceCGL::DeviceCGL):
(rx::DeviceCGL::~DeviceCGL):
(rx::DeviceCGL::initialize):
(rx::DeviceCGL::getAttribute):
(rx::DeviceCGL::getType):
(rx::DeviceCGL::generateExtensions const):

  • src/libANGLE/renderer/gl/cgl/DeviceCGL.h: Added.
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:

(rx::DisplayCGL::createDevice):
(rx::DisplayCGL::getCGLPixelFormat const):
(rx::DisplayCGL::generateExtensions const):

  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm:

(rx::IOSurfaceSurfaceCGL::initializeAlphaChannel):

  • src/libANGLE/renderer/gl/egl/DisplayEGL.cpp:

(rx::DisplayEGL::generateExtensions const):

  • src/libANGLE/renderer/gl/glx/DisplayGLX.cpp:

(rx::DisplayGLX::makeCurrent):

  • src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp:

(rx::WindowSurfaceGLX::initialize):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::GenerateCaps):
(rx::nativegl_gl::InitializeFeatures):
(rx::nativegl_gl::InitializeFrontendFeatures):
(rx::nativegl::SupportsCompute):
(rx::nativegl::GetBufferBindingQuery):
(rx::nativegl::GetBufferBindingString):

  • src/libANGLE/renderer/gl/renderergl_utils.h:
  • src/libANGLE/renderer/load_functions_data.json:
  • src/libANGLE/renderer/load_functions_table_autogen.cpp:

(angle::GetLoadFunctionsMap):

  • src/libANGLE/renderer/null/DeviceNULL.cpp:

(rx::DeviceNULL::getAttribute):
(rx::DeviceNULL::getDevice): Deleted.

  • src/libANGLE/renderer/null/DeviceNULL.h:
  • src/libANGLE/renderer/renderer_utils.cpp:

(rx::ShouldUseDebugLayers):

  • src/libANGLE/renderer/vulkan/BufferVk.cpp:

(rx::BufferVk::release):
(rx::BufferVk::mapRangeImpl):
(rx::BufferVk::setDataImpl):

  • src/libANGLE/renderer/vulkan/CommandGraph.cpp:

(rx::vk::CommandGraphResource::CommandGraphResource):
(rx::vk::CommandGraphResource::~CommandGraphResource):
(rx::vk::CommandGraphResource::isResourceInUse const):
(rx::vk::CommandGraphResource::recordCommands):
(rx::vk::CommandGraphResource::addWriteDependency):
(rx::vk::CommandGraphResource::addReadDependency):
(rx::vk::CommandGraphResource::startNewCommands):
(rx::vk::CommandGraphResource::onWriteImpl):
(rx::vk::SharedGarbage::SharedGarbage):
(rx::vk::SharedGarbage::operator=):
(rx::vk::SharedGarbage::destroyIfComplete):
(rx::vk::CommandGraph::~CommandGraph):
(rx::vk::CommandGraph::submitCommands):
(rx::vk::CommandGraph::releaseResourceUses):
(rx::vk::CommandGraph::releaseResourceUsesAndUpdateSerials):
(rx::vk::CommandGraphResource::resetQueueSerial): Deleted.

  • src/libANGLE/renderer/vulkan/CommandGraph.h:

(rx::vk::CommandGraphResource::getLatestSerial const):
(rx::vk::CommandGraphResource::hasStartedRenderPass const):
(rx::vk::CommandGraphResource::updateCurrentAccessNodes):
(rx::vk::CommandGraphResource::onGraphAccess):
(rx::vk::CommandGraphResource::appendToStartedRenderPass):
(rx::vk::CommandGraphResource::renderPassStartedButEmpty const):
(rx::vk::CommandGraphResource::clearRenderPassColorAttachment):
(rx::vk::CommandGraphResource::clearRenderPassDepthAttachment):
(rx::vk::CommandGraphResource::clearRenderPassStencilAttachment):
(rx::vk::CommandGraphResource::invalidateRenderPassColorAttachment):
(rx::vk::CommandGraphResource::invalidateRenderPassDepthAttachment):
(rx::vk::CommandGraphResource::invalidateRenderPassStencilAttachment):
(rx::vk::CommandGraphResource::getRenderPassRenderArea const):
(rx::vk::CommandGraphResource::addGlobalMemoryBarrier):
(rx::vk::CommandGraphResource::hasChildlessWritingNode const):
(rx::vk::CommandGraph::onResourceUse):
(rx::vk::CommandGraphResource::getStoredQueueSerial const): Deleted.
(rx::vk::CommandGraphResource::updateQueueSerial): Deleted.

  • src/libANGLE/renderer/vulkan/ContextVk.cpp:

(rx::CommandBatch::CommandBatch):
(rx::CommandBatch::operator=):
(rx::CommandBatch::destroy):
(rx::CommandQueue::destroy):
(rx::CommandQueue::init):
(rx::CommandQueue::checkCompletedCommands):
(rx::CommandQueue::releaseToCommandBatch):
(rx::CommandQueue::clearAllGarbage):
(rx::CommandQueue::allocatePrimaryCommandBuffer):
(rx::CommandQueue::releasePrimaryCommandBuffer):
(rx::CommandQueue::handleDeviceLost):
(rx::CommandQueue::hasInFlightCommands const):
(rx::CommandQueue::finishToSerialOrTimeout):
(rx::CommandQueue::submitFrame):
(rx::CommandQueue::getLastSubmittedFence const):
(rx::ContextVk::ContextVk):
(rx::ContextVk::onDestroy):
(rx::ContextVk::initialize):
(rx::ContextVk::setupDraw):
(rx::ContextVk::setupIndirectDraw):
(rx::ContextVk::setupIndexedIndirectDraw):
(rx::ContextVk::setupLineLoopIndexedIndirectDraw):
(rx::ContextVk::handleDirtyGraphicsVertexBuffers):
(rx::ContextVk::handleDirtyGraphicsIndexBuffer):
(rx::ContextVk::submitFrame):
(rx::ContextVk::flushCommandGraph):
(rx::ContextVk::synchronizeCpuGpuTime):
(rx::ContextVk::traceGpuEventImpl):
(rx::ContextVk::checkCompletedGpuEvents):
(rx::ContextVk::flushGpuEvents):
(rx::ContextVk::clearAllGarbage):
(rx::ContextVk::handleDeviceLost):
(rx::ContextVk::drawArraysIndirect):
(rx::ContextVk::drawElementsIndirect):
(rx::ContextVk::syncState):
(rx::ContextVk::onMakeCurrent):
(rx::ContextVk::dispatchComputeIndirect):
(rx::ContextVk::memoryBarrier):
(rx::ContextVk::writeAtomicCounterBufferDriverUniformOffsets):
(rx::ContextVk::updateActiveTextures):
(rx::ContextVk::updateActiveImages):
(rx::ContextVk::shouldFlush):
(rx::ContextVk::flushImpl):
(rx::ContextVk::finishImpl):
(rx::ContextVk::isSerialInUse const):
(rx::ContextVk::checkCompletedCommands):
(rx::ContextVk::finishToSerial):
(rx::ContextVk::finishToSerialOrTimeout):
(rx::ContextVk::getCompatibleRenderPass):
(rx::ContextVk::getRenderPassWithOps):
(rx::ContextVk::ensureSubmitFenceInitialized):
(rx::ContextVk::getNextSubmitFence):
(rx::ContextVk::getLastSubmittedFence const):
(rx::ContextVk::getTimestamp):
(rx::ContextVk::updateDefaultAttribute):
(rx::ContextVk::waitForSwapchainImageIfNecessary):
(rx::ContextVk::CommandBatch::CommandBatch): Deleted.
(rx::ContextVk::CommandBatch::operator=): Deleted.
(rx::ContextVk::CommandBatch::destroy): Deleted.
(rx::ContextVk::releaseToCommandBatch): Deleted.
(rx::ContextVk::recycleCommandBatch): Deleted.
(rx::ContextVk::getCommandGraph): Deleted.

  • src/libANGLE/renderer/vulkan/ContextVk.h:

(rx::ContextVk::onVertexAttributeChange):
(rx::ContextVk::getCurrentQueueSerial const):
(rx::ContextVk::getLastSubmittedQueueSerial const):
(rx::ContextVk::getLastCompletedQueueSerial const):
(rx::ContextVk::addGarbage):
(rx::ContextVk::getCommandGraph):
(rx::ContextVk::releaseObject): Deleted.

  • src/libANGLE/renderer/vulkan/DeviceVk.cpp:

(rx::DeviceVk::getAttribute):
(rx::DeviceVk::getDevice): Deleted.

  • src/libANGLE/renderer/vulkan/DeviceVk.h:
  • src/libANGLE/renderer/vulkan/DisplayVk.cpp:

(rx::DisplayVk::generateExtensions const):

  • src/libANGLE/renderer/vulkan/FramebufferVk.cpp:

(rx::FramebufferVk::destroy):
(rx::FramebufferVk::invalidate):
(rx::FramebufferVk::invalidateSub):
(rx::FramebufferVk::clearImpl):
(rx::FramebufferVk::getImplementationColorReadType const):
(rx::FramebufferVk::blitWithCommand):
(rx::FramebufferVk::blit):
(rx::FramebufferVk::resolveColorWithCommand):
(rx::FramebufferVk::readPixelsImpl):
(rx::FramebufferVk::onScissorChange):

  • src/libANGLE/renderer/vulkan/FramebufferVk.h:

(rx::FramebufferVk::appendToStartedRenderPass):

  • src/libANGLE/renderer/vulkan/GlslangWrapper.cpp:
  • src/libANGLE/renderer/vulkan/ImageVk.cpp:

(rx::ImageVk::onDestroy):
(rx::ImageVk::orphan):

  • src/libANGLE/renderer/vulkan/ImageVk.h:
  • src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp:

(rx::MemoryObjectVk::createImage):

  • src/libANGLE/renderer/vulkan/OverlayVk.cpp:

(rx::OverlayVk::createFont):
(rx::OverlayVk::cullWidgets):
(rx::OverlayVk::onPresent):

  • src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp:

(rx::vk::PersistentCommandPool::destroy):
(rx::vk::PersistentCommandPool::allocate):
(rx::vk::PersistentCommandPool::alloc): Deleted.

  • src/libANGLE/renderer/vulkan/PersistentCommandPool.h:
  • src/libANGLE/renderer/vulkan/ProgramVk.cpp:

(rx::ProgramVk::reset):
(rx::ProgramVk::initDefaultUniformLayoutMapping):
(rx::ProgramVk::updateDefaultUniformsDescriptorSet):
(rx::ProgramVk::updateBuffersDescriptorSet):
(rx::ProgramVk::updateAtomicCounterBuffersDescriptorSet):
(rx::ProgramVk::updateImagesDescriptorSet):
(rx::ProgramVk::updateTransformFeedbackDescriptorSetImpl):
(rx::ProgramVk::updateDescriptorSets):

  • src/libANGLE/renderer/vulkan/ProgramVk.h:

(rx::ProgramVk::getGraphicsPipeline):

  • src/libANGLE/renderer/vulkan/README.md:
  • src/libANGLE/renderer/vulkan/RenderTargetVk.cpp:

(rx::RenderTargetVk::RenderTargetVk):
(rx::RenderTargetVk::init):
(rx::RenderTargetVk::reset):
(rx::RenderTargetVk::onColorDraw):
(rx::RenderTargetVk::onDepthStencilDraw):
(rx::RenderTargetVk::updateSwapchainImage):
(rx::RenderTargetVk::getImageForRead):
(rx::RenderTargetVk::getImageForWrite const):
(rx::RenderTargetVk::getFetchImageView const): Deleted.

  • src/libANGLE/renderer/vulkan/RenderTargetVk.h:
  • src/libANGLE/renderer/vulkan/RenderbufferVk.cpp:

(rx::RenderbufferVk::setStorageImpl):
(rx::RenderbufferVk::setStorageEGLImageTarget):
(rx::RenderbufferVk::releaseImage):

  • src/libANGLE/renderer/vulkan/RenderbufferVk.h:
  • src/libANGLE/renderer/vulkan/RendererVk.cpp:

(rx::RendererVk::~RendererVk):
(rx::RendererVk::onDestroy):
(rx::RendererVk::notifyDeviceLost):
(rx::RendererVk::initialize):
(rx::RendererVk::initializeDevice):
(rx::RendererVk::initFeatures):
(rx::RendererVk::queueSubmit):
(rx::RendererVk::cleanupGarbage):
(rx::RendererVk::getMaxFenceWaitTimeNs const):
(rx::RendererVk::onCompletedSerial):
(rx::RendererVk::nextSerial): Deleted.
(rx::RendererVk::addGarbage): Deleted.

  • src/libANGLE/renderer/vulkan/RendererVk.h:

(rx::CollectGarbage):
(rx::RendererVk::getMaxVertexAttribDivisor const):
(rx::RendererVk::collectGarbageAndReinit):
(rx::RendererVk::getCurrentQueueSerial const):
(rx::RendererVk::getLastSubmittedQueueSerial const):
(rx::RendererVk::getLastCompletedQueueSerial const):
(rx::RendererVk::shouldCleanupGarbage):

  • src/libANGLE/renderer/vulkan/SamplerVk.cpp:

(rx::SamplerVk::onDestroy):
(rx::SamplerVk::syncState):

  • src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp:

(rx::vk::priv::SecondaryCommandBuffer::executeCommands):
(rx::vk::priv::SecondaryCommandBuffer::dumpCommands const):

  • src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h:

(rx::vk::priv::SecondaryCommandBuffer::drawIndirect):
(rx::vk::priv::SecondaryCommandBuffer::drawIndexedIndirect):

  • src/libANGLE/renderer/vulkan/SemaphoreVk.cpp:

(rx::SemaphoreVk::onDestroy):

  • src/libANGLE/renderer/vulkan/SurfaceVk.cpp:

(rx::OffscreenSurfaceVk::AttachmentImage::initialize):
(rx::OffscreenSurfaceVk::AttachmentImage::destroy):
(rx::OffscreenSurfaceVk::OffscreenSurfaceVk):
(rx::WindowSurfaceVk::WindowSurfaceVk):
(rx::WindowSurfaceVk::createSwapChain):
(rx::WindowSurfaceVk::releaseSwapchainImages):
(rx::WindowSurfaceVk::destroySwapChainImages):
(rx::WindowSurfaceVk::present):
(rx::WindowSurfaceVk::nextSwapchainImage):

  • src/libANGLE/renderer/vulkan/SyncVk.cpp:

(rx::vk::SyncHelper::SyncHelper):
(rx::vk::SyncHelper::~SyncHelper):
(rx::vk::SyncHelper::releaseToRenderer):
(rx::vk::SyncHelper::initialize):
(rx::vk::SyncHelper::clientWait):
(rx::vk::SyncHelper::serverWait):
(rx::vk::SyncHelper::getStatus):
(rx::SyncVk::onDestroy):
(rx::SyncVk::serverWait):
(rx::EGLSyncVk::onDestroy):
(rx::EGLSyncVk::serverWait):
(rx::FenceSyncVk::FenceSyncVk): Deleted.
(rx::FenceSyncVk::~FenceSyncVk): Deleted.
(rx::FenceSyncVk::onDestroy): Deleted.
(rx::FenceSyncVk::initialize): Deleted.
(rx::FenceSyncVk::clientWait): Deleted.
(rx::FenceSyncVk::serverWait): Deleted.
(rx::FenceSyncVk::getStatus): Deleted.

  • src/libANGLE/renderer/vulkan/SyncVk.h:
  • src/libANGLE/renderer/vulkan/TextureVk.cpp:

(rx::TextureVk::onDestroy):
(rx::TextureVk::copySubImageImpl):
(rx::TextureVk::copySubTextureImpl):
(rx::TextureVk::copySubImageImplWithTransfer):
(rx::TextureVk::copySubImageImplWithDraw):
(rx::TextureVk::setStorageExternalMemory):
(rx::TextureVk::setEGLImageTarget):
(rx::TextureVk::ensureImageAllocated):
(rx::TextureVk::setImageHelper):
(rx::TextureVk::copyImageDataToBufferAndGetData):
(rx::TextureVk::copyImageDataToBuffer):
(rx::TextureVk::generateMipmapsWithCPU):
(rx::TextureVk::generateMipmap):
(rx::TextureVk::setBaseLevel):
(rx::TextureVk::changeLevels):
(rx::TextureVk::bindTexImage):
(rx::TextureVk::getAttachmentRenderTarget):
(rx::TextureVk::ensureImageInitialized):
(rx::TextureVk::initLayerRenderTargets):
(rx::TextureVk::syncState):
(rx::TextureVk::getReadImageView const):
(rx::TextureVk::getFetchImageView const):
(rx::TextureVk::getLayerLevelDrawImageView):
(rx::TextureVk::getLayerLevelStorageImageView):
(rx::TextureVk::initImage):
(rx::TextureVk::initImageViews):
(rx::TextureVk::releaseImage):
(rx::TextureVk::releaseImageViews):
(rx::TextureVk::releaseStagingBuffer):
(rx::TextureVk::getLevelCount const):
(rx::TextureVk::generateMipmapLevelsWithCPU):
(rx::TextureVk::TextureVkViews::TextureVkViews): Deleted.
(rx::TextureVk::TextureVkViews::~TextureVkViews): Deleted.
(rx::TextureVk::TextureVkViews::release): Deleted.
(rx::TextureVk::init3DRenderTargets): Deleted.
(rx::TextureVk::initCubeMapRenderTargets): Deleted.
(rx::TextureVk::getTextureViews const): Deleted.
(rx::TextureVk::initImageViewImpl): Deleted.

  • src/libANGLE/renderer/vulkan/TextureVk.h:

(): Deleted.

  • src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp:

(rx::TransformFeedbackVk::onBeginOrEnd):

  • src/libANGLE/renderer/vulkan/UtilsVk.cpp:

(rx::UtilsVk::ensureConvertIndexIndirectResourcesInitialized):
(rx::UtilsVk::ensureConvertIndexIndirectLineLoopResourcesInitialized):
(rx::UtilsVk::convertIndexIndirectBuffer):
(rx::UtilsVk::convertLineLoopIndexIndirectBuffer):
(rx::UtilsVk::startRenderPass):
(rx::UtilsVk::clearFramebuffer):
(rx::UtilsVk::blitResolveImpl):
(rx::UtilsVk::stencilBlitResolveNoShaderExport):
(rx::UtilsVk::copyImage):
(rx::UtilsVk::cullOverlayWidgets):
(rx::UtilsVk::drawOverlay):

  • src/libANGLE/renderer/vulkan/UtilsVk.h:
  • src/libANGLE/renderer/vulkan/VertexArrayVk.cpp:

(rx::VertexArrayVk::destroy):
(rx::VertexArrayVk::convertIndexBufferIndirectGPU):
(rx::VertexArrayVk::handleLineLoopIndirect):
(rx::VertexArrayVk::convertVertexBufferCPU):
(rx::VertexArrayVk::syncDirtyAttrib):
(rx::VertexArrayVk::updateStreamedAttribs):
(rx::VertexArrayVk::updateDefaultAttrib):
(rx::VertexArrayVk::updateClientAttribs): Deleted.

  • src/libANGLE/renderer/vulkan/VertexArrayVk.h:

(rx::VertexArrayVk::getStreamingVertexAttribsMask const):

  • src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp:

(rx::HardwareBufferImageSiblingVkAndroid::initImpl):
(rx::HardwareBufferImageSiblingVkAndroid::release):

  • src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h:
  • src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md:
  • src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md:
  • src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md:
  • src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md:
  • src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py:

(shader_path):

  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc:
  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc:
  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc:
  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc:
  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc:
  • src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc:
  • src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp:
  • src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json:
  • src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp:
  • src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json:
  • src/libANGLE/renderer/vulkan/vk_cache_utils.cpp:

(rx::vk::GraphicsPipelineDesc::initializePipeline const):
(rx::vk::GraphicsPipelineDesc::updateVertexInput):
(rx::vk::PipelineLayoutDesc::updatePushConstantRange):
(rx::RenderPassCache::addRenderPass):
(rx::GraphicsPipelineCache::release):
(rx::GraphicsPipelineCache::insertPipeline):

  • src/libANGLE/renderer/vulkan/vk_cache_utils.h:
  • src/libANGLE/renderer/vulkan/vk_caps_utils.cpp:

(rx::RendererVk::ensureCapsInitialized const):

  • src/libANGLE/renderer/vulkan/vk_format_map.json:
  • src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp:

(rx::vk::Format::initialize):

  • src/libANGLE/renderer/vulkan/vk_format_utils.cpp:

(rx::MapSwizzleState):

  • src/libANGLE/renderer/vulkan/vk_helpers.cpp:

(rx::vk::DynamicBuffer::allocate):
(rx::vk::DynamicBuffer::releaseBufferListToRenderer):
(rx::vk::DynamicBuffer::release):
(rx::vk::DynamicBuffer::releaseInFlightBuffers):
(rx::vk::DescriptorPoolHelper::release):
(rx::vk::LineLoopHelper::LineLoopHelper):
(rx::vk::LineLoopHelper::streamIndicesIndirect):
(rx::vk::LineLoopHelper::release):
(rx::vk::LineLoopHelper::destroy):
(rx::vk::BufferHelper::init):
(rx::vk::BufferHelper::release):
(rx::vk::ImageHelper::ImageHelper):
(rx::vk::ImageHelper::init):
(rx::vk::ImageHelper::initExternal):
(rx::vk::ImageHelper::releaseImage):
(rx::vk::ImageHelper::releaseStagingBuffer):
(rx::vk::ImageHelper::destroy):
(rx::vk::ImageHelper::getBaseLevel):
(rx::vk::ImageHelper::setBaseAndMaxLevels):
(rx::vk::ImageHelper::generateMipmapsWithBlit):
(rx::vk::ImageHelper::removeStagedUpdates):
(rx::vk::ImageHelper::stageSubresourceUpdate):
(rx::vk::ImageHelper::stageSubresourceUpdateAndGetData):
(rx::vk::ImageHelper::stageSubresourceUpdateFromBuffer):
(rx::vk::ImageHelper::stageSubresourceUpdateFromFramebuffer):
(rx::vk::ImageHelper::allocateStagingMemory):
(rx::vk::ImageHelper::flushStagedUpdates):
(rx::vk::ImageHelper::isUpdateStaged):
(rx::vk::ImageHelper::SubresourceUpdate::SubresourceUpdate):
(rx::vk::ImageHelper::SubresourceUpdate::release):
(rx::vk::FramebufferHelper::release):
(rx::vk::ShaderProgramHelper::release):
(rx::vk::DynamicBuffer::releaseBufferListToContext): Deleted.
(rx::vk::DynamicBuffer::releaseBufferListToDisplay): Deleted.
(rx::vk::ImageHelper::dumpResources): Deleted.

  • src/libANGLE/renderer/vulkan/vk_helpers.h:

(rx::vk::ShaderProgramHelper::getShader):
(rx::vk::ShaderProgramHelper::getGraphicsPipeline):

  • src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp:

(rx::vk::ShaderLibrary::destroy):
(rx::vk::ShaderLibrary::getConvertIndexIndirectLineLoop_comp):

  • src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni:
  • src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h:
  • src/libANGLE/renderer/vulkan/vk_utils.cpp:

(rx::HasKhronosValidationLayer):
(rx::HasStandardValidationLayer):
(rx::GetAvailableValidationLayers):
(rx::vk::StagingBuffer::init):
(rx::vk::StagingBuffer::release):
(rx::vk::GarbageObject::GarbageObject):
(rx::vk::GarbageObject::operator=):
(rx::vk::GarbageObject::destroy):
(rx::gl_vk::GetSamplerMipmapMode):
(rx::vk::StagingBuffer::dumpResources): Deleted.
(rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted.
(rx::vk::GarbageObjectBase::destroy): Deleted.
(rx::vk::GarbageObject::destroyIfComplete): Deleted.

  • src/libANGLE/renderer/vulkan/vk_utils.h:

(rx::vk::GarbageObject::valid const):
(rx::vk::GarbageObject::Get):
(rx::vk::GetGarbage):
(rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted.

  • src/libANGLE/renderer/vulkan/vk_wrapper.h:

(rx::vk::WrappedObject::getHandle const):
(rx::vk::WrappedObject::valid const):
(rx::vk::WrappedObject::ptr const):
(rx::vk::WrappedObject::release):
(rx::vk::WrappedObject::WrappedObject):
(rx::vk::WrappedObject::~WrappedObject):
(rx::vk::WrappedObject::operator=):
(rx::vk::priv::CommandBuffer::SupportsQueries):
(rx::vk::priv::CommandBuffer::getMemoryUsageStats const):
(rx::vk::priv::CommandBuffer::drawIndexedIndirect):
(rx::vk::priv::CommandBuffer::drawIndirect):
(rx::vk::WrappedObject::dumpResources): Deleted.
(rx::vk::priv::CommandBuffer::getMemoryUsageStats): Deleted.

  • src/libANGLE/validationEGL.cpp:

(egl::ValidateCreateContext):
(egl::ValidateMakeCurrent):
(egl::ValidateCompatibleSurface):
(egl::ValidateStreamConsumerGLTextureExternalKHR):
(egl::ValidateStreamConsumerGLTextureExternalAttribsNV):
(egl::ValidateQueryStringiANGLE):
(egl::ValidateCompatibleConfigs): Deleted.

  • src/libANGLE/validationEGL.h:
  • src/libANGLE/validationES.cpp:

(gl::ValidateRenderbufferStorageParametersBase):
(gl::ValidateTexStorageMultisample):

  • src/libANGLE/validationES.h:

(gl::ValidateVertexFormat):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateES2TexStorageParameters):

  • src/libANGLE/validationES3.cpp:

(gl::ValidateES3TexStorageParametersBase):

  • src/libANGLE/validationES31.cpp:

(gl::err::ValidateProgramResourceIndex):

  • src/libGLESv2.gni:
  • src/libGLESv2/entry_points_egl_ext.cpp:
  • src/tests/BUILD.gn:
  • src/tests/angle_deqp_tests_main.cpp:

(main):

  • src/tests/angle_end2end_tests.gni:
  • src/tests/compiler_tests/DebugShaderPrecision_test.cpp:

(TEST_F):

  • src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp:

(sh::TEST):

  • src/tests/compiler_tests/ImmutableString_test_autogen.cpp:

(sh::TEST):

  • src/tests/compiler_tests/QualificationOrder_test.cpp:

(TEST_F):

  • src/tests/deqp_support/angle_deqp_gtest.cpp:

(angle::InitTestHarness):

  • src/tests/deqp_support/angle_deqp_libtester_main.cpp:
  • src/tests/deqp_support/deqp_egl_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_gles2_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_gles31_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_gles3_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_khr_gles2_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_khr_gles31_TestExpectations: Removed.
  • src/tests/deqp_support/deqp_khr_gles3_TestExpectations: Removed.
  • src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp:
  • src/tests/deqp_support/tcuANGLEPlatform.cpp:

(tcu::ANGLEPlatform::ANGLEPlatform):

  • src/tests/deqp_support/tes31Context_override.cpp:

(deqp::gles31::Context::Context):
(deqp::gles31::Context::~Context):
(deqp::gles31::Context::createRenderContext):
(deqp::gles31::Context::destroyRenderContext):
(deqp::gles31::Context::getRenderTarget const):

  • src/tests/egl_tests/EGLDeviceCGLTest.cpp: Added.

(EGLDeviceCGLQueryTest::EGLDeviceCGLQueryTest):
(TEST_P):

  • src/tests/egl_tests/EGLDirectCompositionTest.cpp:
  • src/tests/egl_tests/EGLFeatureControlTest.cpp:

(TEST_P):

  • src/tests/egl_tests/EGLNoConfigContextTest.cpp: Added.

(EGLNoConfigContextTest::EGLNoConfigContextTest):
(TEST_P):

  • src/tests/gl_tests/BlendFuncExtendedTest.cpp:

(angle::EXTBlendFuncExtendedDrawTestES3::LinkProgram):

  • src/tests/gl_tests/ComputeShaderTest.cpp:
  • src/tests/gl_tests/CopyTexImageTest.cpp:

(angle::TEST_P):

  • src/tests/gl_tests/CopyTextureTest.cpp:

(angle::CopyTextureVariationsTest::initializeSourceTexture):
(angle::CopyTextureVariationsTest::testCopyTexture):
(angle::CopyTextureVariationsTest::testCopySubTexture):
(angle::TEST_P):

  • src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp:

(angle::DrawBaseVertexBaseInstanceTest::DrawBaseVertexBaseInstanceTest):
(angle::DrawBaseVertexBaseInstanceTest::vertexShaderSource300):

  • src/tests/gl_tests/FramebufferTest.cpp:

(TEST_P):

  • src/tests/gl_tests/GLSLTest.cpp:
  • src/tests/gl_tests/IndexBufferOffsetTest.cpp:
  • src/tests/gl_tests/InstancingTest.cpp:
  • src/tests/gl_tests/LineLoopTest.cpp:

(LineLoopTest::checkPixels):
(LineLoopTest::runTest):
(LineLoopIndirectTest::runTest):
(TEST_P):

  • src/tests/gl_tests/LinkAndRelinkTest.cpp:

(angle::TEST_P):

  • src/tests/gl_tests/MipmapTest.cpp:
  • src/tests/gl_tests/OcclusionQueriesTest.cpp:
  • src/tests/gl_tests/ParallelShaderCompileTest.cpp:

(angle::ParallelShaderCompileTest::TaskRunner::run):

  • src/tests/gl_tests/ProgramInterfaceTest.cpp:
  • src/tests/gl_tests/SimpleOperationTest.cpp:
  • src/tests/gl_tests/StateChangeTest.cpp:
  • src/tests/gl_tests/TextureTest.cpp:

(angle::SliceFormatColor):
(angle::SliceFormatColor32F):

  • src/tests/gl_tests/TimerQueriesTest.cpp:
  • src/tests/gl_tests/UniformBufferTest.cpp:
  • src/tests/gl_tests/VertexAttributeTest.cpp:

(angle::TypeStride):
(angle::Normalize10):
(angle::Normalize2):
(angle::Pack1010102):
(angle::VertexAttributeTest::checkPixels):
(angle::VertexAttributeTest::checkRGBPixels):
(angle::VertexAttributeTest::runTest):
(angle::TEST_P):

  • src/tests/gles1_conformance_tests/ConformanceTests.cpp:

(angle::TEST_P):

  • src/tests/perf_tests/ANGLEPerfTest.cpp:
  • src/tests/perf_tests/DrawCallPerf.cpp:

(angle::DrawArraysPerfParams::DrawArraysPerfParams): Deleted.
(angle::DrawArraysPerfParams::story const): Deleted.
(angle::operator<<): Deleted.
(angle::CreateSimpleTexture2D): Deleted.
(angle::DrawCallPerfBenchmark::DrawCallPerfBenchmark): Deleted.
(angle::DrawCallPerfBenchmark::initializeBenchmark): Deleted.
(): Deleted.

  • src/tests/perf_tests/EGLMakeCurrentPerf.cpp:
  • src/tests/perf_tests/LinkProgramPerfTest.cpp:

(angle::TEST_P):

  • src/tests/perf_tests/MultiviewPerf.cpp:

(angle::MultiviewCPUBoundBenchmark::initializeBenchmark):
(angle::MultiviewGPUBoundBenchmark::initializeBenchmark):
(angle::TEST_P):

  • src/tests/perf_tests/UniformsPerf.cpp:

(TEST_P):

  • src/tests/perf_tests/VulkanPipelineCachePerf.cpp:

(rx::VulkanPipelineCachePerfTest::step):

  • src/tests/perf_tests/glmark2Benchmark.cpp:
  • src/tests/test_expectations/GPUTestConfig.cpp:

(angle::GPUTestConfig::GPUTestConfig):

  • src/tests/test_expectations/GPUTestConfig.h:
  • src/tests/test_expectations/GPUTestExpectationsParser.cpp:

(angle::GPUTestExpectationsParser::parseLine):

  • src/tests/test_utils/ANGLETest.cpp:
  • src/tests/test_utils/ANGLETest.h:
  • src/tests/test_utils/angle_test_configs.cpp:

(angle::PlatformParameters::initDefaultParameters):
(angle::operator<<):
(angle::egl_platform::VULKAN_SWIFTSHADER):
(angle::ES2_VULKAN_SWIFTSHADER):

  • src/tests/test_utils/angle_test_configs.h:
  • src/tests/test_utils/angle_test_instantiate.cpp:

(angle::IsWindows7):

  • src/tests/test_utils/angle_test_instantiate.h:
  • src/third_party/compiler/README.chromium:
  • third_party/vulkan-headers/BUILD.gn: Removed.
  • third_party/vulkan-headers/vulkan_headers_script_deps.gni: Removed.
  • third_party/vulkan-loader/BUILD.gn:
  • third_party/vulkan-tools/BUILD.gn: Removed.
  • third_party/vulkan-validation-layers/BUILD.gn: Removed.
  • third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h: Removed.
  • util/EGLWindow.cpp:
  • util/fuchsia/ScenicWindow.cpp:

(ScenicWindow::resetNativeWindow):

  • util/posix/crash_handler_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp.
  • util/posix/test_utils_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp.
  • util/test_utils.h: Renamed from Source/ThirdParty/ANGLE/util/system_utils.h.
  • util/util.gni:
  • util/util_gl.h:
  • util/windows/WGLWindow.cpp:
  • util/windows/test_utils_win.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp.

(angle::PrintStackBacktrace):

  • util/windows/win32/test_utils_win32.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp.
  • util/x11/X11Window.cpp:
12:17 PM Changeset in webkit [251017] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] API tests should output result summary in json format
https://bugs.webkit.org/show_bug.cgi?id=202854

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunAPITests): Output results in json format as well.

12:14 PM Changeset in webkit [251016] by ddkilzer@apple.com
  • 5 edits
    62 adds in trunk

Get StorageAccess API features working on SQLite database implementation (195422)
https://bugs.webkit.org/show_bug.cgi?id=195422
<rdar://problem/54213519>

Patch by Kate Cheney <Kate Cheney> on 2019-10-11
Reviewed by Brent Fulgham.

Source/WebKit:

This patch migrates the http/tests/storageAccess/ Layout tests to
use the ITP database and uncovered 3 bugs in the process.

  1. It was previously blocking cookies to a third party domain which

was not marked as prevalent. Now it ensures that the user is prompted
using the storage acess API regarding that third party domain.

  1. It was not requesting storage access if cookies had previously been

blocked. Now it will only return early from
ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener
if cookie access is allowed, and request storage access otherwise.

  1. hasUserGrantedStorageAccessThroughPrompt was returning true even

if the result was not previously granted storage access.

All of these fixes match behavior in
ResourceLoadStatisticsMemoryStore.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):

LayoutTests:

This patch migrates tests in http/tests/storageAccess to use the ITP
SQLite Database to ensure the storageAccess API features are working.
Additionally, the Safari UI flow was manually tested for the database
using tlstestwebkit.org (no automated tests exist for this).

It also updates the test expectations for two tests that consistently
timeout on the flakiness dashboard and will be looked into in a
separate radar.

Most storageAccess tests are skipped on ios because of incompatibility
with recognizing user interaction.

  • http/tests/storageAccess/deny-storage-access-under-opener-database-expected.txt: Added.
  • http/tests/storageAccess/deny-storage-access-under-opener-database.html: Added.
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-database-expected.txt: Added.
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-database.html: Added.
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture-database-expected.txt: Added.
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture-database.html: Added.
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture-database-expected.txt: Added.
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture-database.html: Added.
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-database-expected.txt: Added.
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-database.html: Added.
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture-database-expected.txt: Added.
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture-database.html: Added.
  • http/tests/storageAccess/has-storage-access-crash-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-crash-database.html: Added.
  • http/tests/storageAccess/has-storage-access-false-by-default-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-false-by-default-database.html: Added.
  • http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database.html: Added.
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-database.html: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html: Added.
  • http/tests/storageAccess/remove-requesting-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/remove-requesting-iframe-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database.html: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database.html: Added.
  • http/tests/storageAccess/request-storage-access-crash-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-crash-database.html: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-database.html: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-database.html: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-database.html: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-iframe-database.html: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-database.html: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-database.html: Added.
  • http/tests/storageAccess/request-storage-access-top-frame-database-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-top-frame-database.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:03 PM Changeset in webkit [251015] by Antti Koivisto
  • 13 edits in trunk

Position::upstream/downstream should not need to call ensureLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=202203

Reviewed by Zalan Bujtas.

Source/WebCore:

This avoids forced switch to complex text layout path by Position constructor and will allow future cleanups.

Currently simple line path strips end of line whitespace when white-space:pre-wrap is set.
These are don't affect rendering but they are needed for editing positions.
This patch makes simple line path match the complex path by generating runs for these whitespaces.

  • dom/Position.cpp:

(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::ensureLineBoxesIfNeeded): Deleted.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::LineState::appendFragmentAndCreateRunIfNeeded):

Create a new run if isLineBreak bit is set.

(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::LineState::trailingWhitespaceWidth const):
(WebCore::SimpleLineLayout::computeLineLeft):

Also compute width of the hanging whitespace when aligning the line. This matches the code
in updateLogicalWidthForLeft/Right/CenterAlignedBlock in the complex path.

(WebCore::SimpleLineLayout::preWrap):

breakSpaces implies preWrap is off.

(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::createLineRuns):

Crete runs also for soft linebreaks in pre-wrap.
Add whitespace runs to the end of the line in pre-wrap.

(WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):

Hang the whitespace run when wrapping.

(WebCore::SimpleLineLayout::removeTrailingWhitespace): Deleted.

Remainging logic moved to the callsite.

LayoutTests:

Some additional end of line whitespaces.

Skip imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-013.html.

This test starts failing because soft linebreak clears the trailing whitespace run.
The failing behavior aligns simple path with the complex path. The existing textarea-pre-wrap-013.html
test (which takes the complex path) is already skipped because of this.

  • platform/mac/fast/forms/targeted-frame-submission-expected.txt:
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/loader/text-document-wrapping-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/http/tests/misc/acid3-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
11:47 AM Changeset in webkit [251014] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Layout test fast/events/touch/ios/passive-by-default-on-document-and-window.html is a flaky failure on Internal iOS Testers
https://bugs.webkit.org/show_bug.cgi?id=202858
<rdar://51829520>

Reviewed by Tim Horton.

We can't guarantee how many touchmove events we'll get for a drag, so
this was flaky. Easiest thing to do is remove the listeners, since they
aren't an important part of the test. (We could have removed them on
firing too, which we do for the similar test that exercises the case
where we don't use the default options)

  • fast/events/touch/ios/passive-by-default-on-document-and-window-expected.txt:
  • fast/events/touch/ios/passive-by-default-on-document-and-window.html:
11:47 AM Changeset in webkit [251013] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

Wasm B3IRGenerator should use arguments for control data.
https://bugs.webkit.org/show_bug.cgi?id=202855

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/stress/loop-more-args-than-results.js: Added.

Source/JavaScriptCore:

This was failing a test on our bots. I'm not sure how I missed
it... I also added another test for good measure.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::ControlData::ControlData):

10:22 AM Changeset in webkit [251012] by dino@apple.com
  • 6 edits in trunk

REGRESSION: fast/events/touch/ios/long-press-on-image.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202845
Source/WebKit:

Reviewed by Antoine Quint.

Update _contentsOfUserInterfaceItem so that it returns more information
on a context menu.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _contentsOfUserInterfaceItem:]):

LayoutTests:

<rdar://51717197>

Reviewed by Antoine Quint.

This test failed because images no longer pop up action sheets, but
instead use context menus.

We no longer need to test the actions in the context menu here, since
it is covered by the TestWebKitAPI/Tests/WebKitCocoa/ContextMenus test.

However, we can still use this test to ensure we are getting a
context menu on the correct element.

  • fast/events/touch/ios/long-press-on-image-expected.txt:
  • fast/events/touch/ios/long-press-on-image.html:
  • platform/iphone-7/fast/events/touch/force-press-on-link.html: This

test currently fails and needs to be rewritten (rdar://problem/52699530),
but at least update it to use the new data from the Internal API.

9:41 AM Changeset in webkit [251011] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebKit

Use sendWithAsyncReply for cookie getting/clearing functions
https://bugs.webkit.org/show_bug.cgi?id=202841

Patch by Alex Christensen <achristensen@webkit.org> on 2019-10-11
Reviewed by Carlos Garcia Campos.

No change in behavior. This just simplifies the message sending a bit.

  • NetworkProcess/Cookies/WebCookieManager.cpp:

(WebKit::WebCookieManager::getHostnamesWithCookies):
(WebKit::WebCookieManager::deleteAllCookies):
(WebKit::WebCookieManager::deleteCookie):
(WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManager::getAllCookies):
(WebKit::WebCookieManager::getCookies):
(WebKit::WebCookieManager::setCookie):
(WebKit::WebCookieManager::setCookies):
(WebKit::WebCookieManager::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):

  • NetworkProcess/Cookies/WebCookieManager.h:
  • NetworkProcess/Cookies/WebCookieManager.messages.in:
  • NetworkProcess/Cookies/mac/WebCookieManagerMac.mm:
  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::deleteCookie):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicy):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setCookieAcceptPolicy:]):

  • UIProcess/API/glib/WebKitCookieManager.cpp:

(webkit_cookie_manager_set_accept_policy):
(webkit_cookie_manager_get_accept_policy):
(webkit_cookie_manager_add_cookie):
(webkit_cookie_manager_get_cookies):
(webkit_cookie_manager_delete_cookie):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::addSingleCookie):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::processPoolDestroyed):
(WebKit::WebCookieManagerProxy::processDidClose):
(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::deleteCookie):
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManagerProxy::setCookies):
(WebKit::WebCookieManagerProxy::getAllCookies):
(WebKit::WebCookieManagerProxy::getCookies):
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies): Deleted.
(WebKit::WebCookieManagerProxy::didSetCookies): Deleted.
(WebKit::WebCookieManagerProxy::didGetCookies): Deleted.
(WebKit::WebCookieManagerProxy::didDeleteCookies): Deleted.
(WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy): Deleted.
(WebKit::WebCookieManagerProxy::didSetHTTPCookieAcceptPolicy): Deleted.

  • UIProcess/WebCookieManagerProxy.h:
  • UIProcess/WebCookieManagerProxy.messages.in:
9:29 AM Changeset in webkit [251010] by Keith Rollin
  • 2 edits in trunk/Source/WTF

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=202819
<rdar://problem/56164233>

Reviewed by Anders Carlsson.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Jiewen Tan was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

  • wtf/Platform.h:
8:20 AM Changeset in webkit [251009] by commit-queue@webkit.org
  • 10 edits in trunk/LayoutTests

Layout Test media/W3C/audio/events/event_progress.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=181966

Patch by Peng Liu <Peng Liu> on 2019-10-11
Reviewed by Eric Carlson.

It is possible that video/audio elements fire "progress" event again
when the event handler is still processing the previous "progress" event.
We need to ignore all the events except the first one to make sure
the test cases generate consistent output.

In addition, this patch fixes some errors in JS file names and function parameters.

  • http/tests/resources/js-test-pre.js:

(isSuccessfullyParsed):

  • media/W3C/audio/events/event_order_loadstart_progress.html:
  • media/W3C/audio/events/event_progress.html:
  • media/W3C/audio/events/event_progress_manual.html:
  • media/W3C/video/events/event_order_loadstart_progress.html:
  • media/W3C/video/events/event_progress.html:
  • media/W3C/video/events/event_progress_manual.html:
  • media/W3C/w3cwrapper.js:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • resources/js-test-pre.js:

(isSuccessfullyParsed):

7:30 AM Changeset in webkit [251008] by Jonathan Bedard
  • 6 edits
    1 delete in trunk

Unreviewed, rolling out r250945.

Broke 18 Debug API tests

Reverted changeset:

"Add support for CompactPointerTuple<..., OptionSet<...>>"
https://bugs.webkit.org/show_bug.cgi?id=201316
https://trac.webkit.org/changeset/250945

7:18 AM Changeset in webkit [251007] by commit-queue@webkit.org
  • 8 edits in trunk

OfflineAudioContext does not validate allocation of destination buffer
https://bugs.webkit.org/show_bug.cgi?id=177259

Patch by Bjorn Melinder <bjornm@spotify.com> on 2019-10-11
Reviewed by Eric Carlson.

Moved the allocation of the destination buffer to the static
OfflineAudioContext::create method where we are able to handle a failed
allocation properly and return an Exception. This change handles both
negative lengths as well as too large lengths where the memory cannot
be allocated.

Source/WebCore:

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:

LayoutTests:

  • webaudio/offlineaudiocontext-constructor-expected.txt:
  • webaudio/offlineaudiocontext-constructor.html:
4:37 AM Changeset in webkit [251006] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Flaky test: imported/w3c/web-platform-tests/offscreen-canvas/compositing/2d.composite.canvas.destination-in.html
https://bugs.webkit.org/show_bug.cgi?id=202801

Patch by Chris Lord <Chris Lord> on 2019-10-11
Reviewed by Alexey Proskuryakov.

More OffscreenCanvas tests failing due to unhandled Promise rejection.
See also bug #202782.

2:04 AM Changeset in webkit [251005] by Konstantin Tokarev
  • 6 edits in trunk

[cmake] Use HINTS instead of PATHS when searching in paths from pkg-config
https://bugs.webkit.org/show_bug.cgi?id=202831

Reviewed by Carlos Garcia Campos.

HINTS and PATHS sections are similar, however HINTS is processed before
default system locations, while PATHS - after. If target file can be found
in the system, pkg-config results are ignored in case of PATHS, making it
impossible to override system version of library with PKG_CONFIG_PATH.

Note that CMake documentation recommends using PATHS for hard-coded guesses.

  • Source/cmake/FindEnchant.cmake:
  • Source/cmake/FindFontconfig.cmake:
  • Source/cmake/FindLibEpoxy.cmake:
  • Source/cmake/FindLibtasn1.cmake:
  • Source/cmake/FindSqlite.cmake:
1:53 AM Changeset in webkit [251004] by magomez@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK and WPE gardening after r251001. Removing crash expectations after
bug 202784 was fixed.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:21 AM Changeset in webkit [251003] by calvaris@igalia.com
  • 2 edits in trunk/Source/WTF

MediaTime pretty printer can print if time is invalid
https://bugs.webkit.org/show_bug.cgi?id=202735

Reviewed by Eric Carlson.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::toString const): Append ", invalid" if isInvalid().
(WTF::MediaTime::toJSONObject const): Set boolean invalid to true
when invalid.

Oct 10, 2019:

11:59 PM Changeset in webkit [251002] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Remove unused WebProcessPool::requestNetworkingStatistics
https://bugs.webkit.org/show_bug.cgi?id=202818

Patch by Alex Christensen <achristensen@webkit.org> on 2019-10-10
Reviewed by Chris Dumez.

Its only use was removed in rdar://problem/56160996

  • NetworkProcess/Downloads/DownloadManager.h:

(WebKit::DownloadManager::isDownloading const):
(WebKit::DownloadManager::activeDownloadCount const): Deleted.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount const): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveMessage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics): Deleted.

  • UIProcess/WebProcessPool.h:
10:18 PM Changeset in webkit [251001] by Fujii Hironori
  • 2 edits in trunk/Tools

[WinCairo] auto-installing raises exception "Inner message: global name 'urllib2' is not defined" since r250869
https://bugs.webkit.org/show_bug.cgi?id=202839

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller._download_to_stream): Replaced urllib2.urlopen with urlopen.

7:47 PM Changeset in webkit [251000] by Konstantin Tokarev
  • 3 edits in trunk/Source/WebCore

Guard GCrypt-specific code with USE(GCRYPT) instead of PLATFORM macros
https://bugs.webkit.org/show_bug.cgi?id=202829

Reviewed by Jiewen Tan.

  • crypto/keys/CryptoKeyEC.h:
  • crypto/keys/CryptoKeyRSA.h:
7:23 PM Changeset in webkit [250999] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

GenerateAndAllocateRegisters can trivially elide self moves at end of liveness
https://bugs.webkit.org/show_bug.cgi?id=202833

Reviewed by Saam Barati.

This also fixes a bug where if a tmp is moved to itself at the end of its lifetime
we would mess up the accounting for the tmp.

In order to catch these bugs earlier during generation I added a
checkConsistency function that if a tmp is in a reg that reg is
not available and that reg thinks the tmp is also allocated in it.

  • b3/B3Bank.h:

(JSC::B3::bankForReg):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::checkConsistency):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
6:50 PM Changeset in webkit [250998] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

New html5lib requires newer version of six.py than that shipped in macOS 10.14.6
https://bugs.webkit.org/show_bug.cgi?id=202830

Autoinstall six along with html5lib.

Patch by Kenneth Russell <kbr@chromium.org> on 2019-10-10
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_mechanize):
(AutoinstallImportHook._install_pytest):

6:30 PM Changeset in webkit [250997] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Sort out certificates on Catalina
https://bugs.webkit.org/show_bug.cgi?id=202837

Unreviewed infrastructure repair.

This is a temporary strategy until we sort out our certificates on the newly
deployed Catalina bots.

  • Scripts/webkitpy/results/upload.py:

(Upload.upload):
(Upload.upload_archive):

  • Scripts/webkitpy/results/upload_unittest.py:

(UploadTest.test_upload):
(UploadTest.test_archive_upload):

5:25 PM Changeset in webkit [250996] by yurys@chromium.org
  • 64 edits in trunk/Source

Web Inspector: use more C++ keywords for defining agents
https://bugs.webkit.org/show_bug.cgi?id=200959
<rdar://problem/54735374>

Reviewed by Joseph Pecoraro.

Add override annotation to overrided virtual methods in inspector code. This
change is automatically generated by the following command:
clang-tidy -checks='-*,modernize-use-override' -header-filter='.*inspector.*' -fix -p WebKitBuild/Release/

WebKitBuild/Release/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-84c9f43f-*.cpp
WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource-84c9f43f-*.cpp

Source/JavaScriptCore:

  • inspector/InjectedScript.h:
  • inspector/InjectedScriptModule.h:
  • inspector/JSGlobalObjectConsoleClient.h:
  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/JSInjectedScriptHost.cpp:
  • inspector/ScriptDebugServer.h:
  • inspector/agents/InspectorAgent.h:
  • inspector/agents/InspectorAuditAgent.h:
  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.h:
  • inspector/agents/InspectorTargetAgent.h:
  • inspector/agents/JSGlobalObjectAuditAgent.h:
  • inspector/agents/JSGlobalObjectDebuggerAgent.h:
  • inspector/agents/JSGlobalObjectRuntimeAgent.h:
  • inspector/remote/RemoteAutomationTarget.h:
  • inspector/remote/RemoteConnectionToTarget.h:

Source/WebCore:

No new tests. No behavior changes.

  • inspector/InspectorController.h:
  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorFrontendHost.cpp:
  • inspector/PageScriptDebugServer.h:
  • inspector/WebInjectedScriptManager.h:
  • inspector/WorkerInspectorController.h:
  • inspector/WorkerScriptDebugServer.h:
  • inspector/WorkerToPageFrontendChannel.h:
  • inspector/agents/InspectorApplicationCacheAgent.h:
  • inspector/agents/InspectorCPUProfilerAgent.h:
  • inspector/agents/InspectorCSSAgent.h:
  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMStorageAgent.h:
  • inspector/agents/InspectorDatabaseAgent.h:
  • inspector/agents/InspectorIndexedDBAgent.cpp:
  • inspector/agents/InspectorIndexedDBAgent.h:
  • inspector/agents/InspectorLayerTreeAgent.h:
  • inspector/agents/InspectorMemoryAgent.h:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • inspector/agents/InspectorNetworkAgent.h:
  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorTimelineAgent.h:
  • inspector/agents/InspectorWorkerAgent.h:
  • inspector/agents/WebConsoleAgent.h:
  • inspector/agents/WebDebuggerAgent.h:
  • inspector/agents/WebHeapAgent.h:
  • inspector/agents/page/PageAuditAgent.h:
  • inspector/agents/page/PageConsoleAgent.h:
  • inspector/agents/page/PageDOMDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageHeapAgent.h:
  • inspector/agents/page/PageNetworkAgent.h:
  • inspector/agents/page/PageRuntimeAgent.h:
  • inspector/agents/worker/ServiceWorkerAgent.h:
  • inspector/agents/worker/WorkerAuditAgent.h:
  • inspector/agents/worker/WorkerConsoleAgent.h:
  • inspector/agents/worker/WorkerDOMDebuggerAgent.h:
  • inspector/agents/worker/WorkerDebuggerAgent.h:
  • inspector/agents/worker/WorkerNetworkAgent.h:
  • inspector/agents/worker/WorkerRuntimeAgent.h:
4:44 PM Changeset in webkit [250995] by mark.lam@apple.com
  • 3 edits in trunk/JSTests

Modify JSTests/stress/string-overflow-createError-*.js tests to allow an OOME result.
https://bugs.webkit.org/show_bug.cgi?id=202828

Reviewed by Yusuke Suzuki.

The tests intentionally allocate a very large string. Hence, for some memory
limited configurations, it is perfectly reasonable for the test to throw an Out
Of Memory error.

  • stress/string-overflow-createError-builder.js:
  • stress/string-overflow-createError-fit.js:
3:28 PM Changeset in webkit [250994] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Use HAVE(IOSURFACE_RGB10) instead of PLATFORM(IOS_FAMILY) where appropriate
https://bugs.webkit.org/show_bug.cgi?id=202823

Reviewed by Wenson Hsieh.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::layerContentsFormat):

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::LegacyTileGridTile::LegacyTileGridTile):

3:02 PM Changeset in webkit [250993] by clopez@igalia.com
  • 5 edits
    138 adds in trunk/LayoutTests

Import css/css-images WPT tests
https://bugs.webkit.org/show_bug.cgi?id=200210

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Imported css/css-images tests from WPT ToT (a879756282) and generated expectations for the non ref-tests.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-images/META.yml: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations-expected.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations002-expected.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations002.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations003-expected.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations003.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations004-expected.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations004.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations005-expected.html: Added.
  • web-platform-tests/css/css-images/css-image-fallbacks-and-annotations005.html: Added.
  • web-platform-tests/css/css-images/gradient-border-box-expected.html: Added.
  • web-platform-tests/css/css-images/gradient-border-box.html: Added.
  • web-platform-tests/css/css-images/gradient-button-expected.html: Added.
  • web-platform-tests/css/css-images/gradient-button.html: Added.
  • web-platform-tests/css/css-images/gradient-content-box-expected.html: Added.
  • web-platform-tests/css/css-images/gradient-content-box.html: Added.
  • web-platform-tests/css/css-images/gradient-crash-expected.html: Added.
  • web-platform-tests/css/css-images/gradient-crash.html: Added.
  • web-platform-tests/css/css-images/gradient-move-stops-expected.html: Added.
  • web-platform-tests/css/css-images/gradient-move-stops.html: Added.
  • web-platform-tests/css/css-images/gradient/color-stops-parsing-expected.txt: Added.
  • web-platform-tests/css/css-images/gradient/color-stops-parsing.html: Added.
  • web-platform-tests/css/css-images/gradient/w3c-import.log: Added.
  • web-platform-tests/css/css-images/gradients-with-border-expected.html: Added.
  • web-platform-tests/css/css-images/gradients-with-border.html: Added.
  • web-platform-tests/css/css-images/gradients-with-transparent-expected.html: Added.
  • web-platform-tests/css/css-images/gradients-with-transparent.html: Added.
  • web-platform-tests/css/css-images/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-images/idlharness.html: Added.
  • web-platform-tests/css/css-images/image-fit-001.xht: Added.
  • web-platform-tests/css/css-images/image-fit-006.xht: Added.
  • web-platform-tests/css/css-images/inheritance-expected.txt: Added.
  • web-platform-tests/css/css-images/inheritance.html: Added.
  • web-platform-tests/css/css-images/linear-gradient-1-expected.html: Added.
  • web-platform-tests/css/css-images/linear-gradient-1.html: Added.
  • web-platform-tests/css/css-images/linear-gradient-2-expected.html: Added.
  • web-platform-tests/css/css-images/linear-gradient-2.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-conic-expected.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-conic.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-linear-2-expected.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-linear-2.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-linear-expected.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-linear.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-radial-2-expected.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-radial-2.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-radial-expected.html: Added.
  • web-platform-tests/css/css-images/multiple-position-color-stop-radial.html: Added.
  • web-platform-tests/css/css-images/parsing/gradient-position-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/gradient-position-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/gradient-position-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/gradient-position-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-computed.html: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-orientation-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-computed.html: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-rendering-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-resolution-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-resolution-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/image-resolution-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/image-resolution-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-computed.html: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-fit-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/object-position-computed-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-position-computed.html: Added.
  • web-platform-tests/css/css-images/parsing/object-position-invalid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-position-invalid.html: Added.
  • web-platform-tests/css/css-images/parsing/object-position-valid-expected.txt: Added.
  • web-platform-tests/css/css-images/parsing/object-position-valid.html: Added.
  • web-platform-tests/css/css-images/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-images/support/1x1-green.gif: Added.
  • web-platform-tests/css/css-images/support/1x1-green.png: Added.
  • web-platform-tests/css/css-images/support/1x1-green.svg: Added.
  • web-platform-tests/css/css-images/support/1x1-lime.png: Added.
  • web-platform-tests/css/css-images/support/1x1-maroon.png: Added.
  • web-platform-tests/css/css-images/support/1x1-navy.png: Added.
  • web-platform-tests/css/css-images/support/1x1-red.png: Added.
  • web-platform-tests/css/css-images/support/1x1-white.png: Added.
  • web-platform-tests/css/css-images/support/60x60-gg-rr.png: Added.
  • web-platform-tests/css/css-images/support/60x60-green.png: Added.
  • web-platform-tests/css/css-images/support/60x60-red.png: Added.
  • web-platform-tests/css/css-images/support/a-green.css: Added.

(.a):

  • web-platform-tests/css/css-images/support/b-green.css: Added.

(.b):

  • web-platform-tests/css/css-images/support/c-red.css: Added.

(.c):

  • web-platform-tests/css/css-images/support/cat.png: Added.
  • web-platform-tests/css/css-images/support/import-green.css: Added.

(.import):

  • web-platform-tests/css/css-images/support/import-red.css: Added.

(.import):

  • web-platform-tests/css/css-images/support/intrinsic-size.jpg: Added.
  • web-platform-tests/css/css-images/support/intrinsic-size.png: Added.
  • web-platform-tests/css/css-images/support/pattern-grg-rgr-grg.png: Added.
  • web-platform-tests/css/css-images/support/pattern-grg-rrg-rgg.png: Added.
  • web-platform-tests/css/css-images/support/pattern-rgr-grg-rgr.png: Added.
  • web-platform-tests/css/css-images/support/pattern-tr.png: Added.
  • web-platform-tests/css/css-images/support/ruler-h-50%.png: Added.
  • web-platform-tests/css/css-images/support/ruler-h-50px.png: Added.
  • web-platform-tests/css/css-images/support/ruler-v-100px.png: Added.
  • web-platform-tests/css/css-images/support/ruler-v-50px.png: Added.
  • web-platform-tests/css/css-images/support/square-purple.png: Added.
  • web-platform-tests/css/css-images/support/square-teal.png: Added.
  • web-platform-tests/css/css-images/support/square-white.png: Added.
  • web-platform-tests/css/css-images/support/support/swatch-green.png: Added.
  • web-platform-tests/css/css-images/support/support/swatch-red.png: Added.
  • web-platform-tests/css/css-images/support/support/w3c-import.log: Added.
  • web-platform-tests/css/css-images/support/swatch-blue.png: Added.
  • web-platform-tests/css/css-images/support/swatch-green.png: Added.
  • web-platform-tests/css/css-images/support/swatch-lime.png: Added.
  • web-platform-tests/css/css-images/support/swatch-orange.png: Added.
  • web-platform-tests/css/css-images/support/swatch-red.png: Added.
  • web-platform-tests/css/css-images/support/swatch-white.png: Added.
  • web-platform-tests/css/css-images/support/swatch-yellow.png: Added.
  • web-platform-tests/css/css-images/support/test-bl.png: Added.
  • web-platform-tests/css/css-images/support/test-br.png: Added.
  • web-platform-tests/css/css-images/support/test-inner-half-size.png: Added.
  • web-platform-tests/css/css-images/support/test-outer.png: Added.
  • web-platform-tests/css/css-images/support/test-tl.png: Added.
  • web-platform-tests/css/css-images/support/test-tr.png: Added.
  • web-platform-tests/css/css-images/support/w3c-import.log: Added.
  • web-platform-tests/css/css-images/tiled-gradients-expected.html: Added.
  • web-platform-tests/css/css-images/tiled-gradients.html: Added.
  • web-platform-tests/css/css-images/tiled-radial-gradients-expected.html: Added.
  • web-platform-tests/css/css-images/tiled-radial-gradients.html: Added.
  • web-platform-tests/css/css-images/w3c-import.log: Added.

LayoutTests:

Import css/css-images tests

  • TestExpectations: Mark the new imported ref-tests that fail and a test that crashes.
2:57 PM Changeset in webkit [250992] by clopez@igalia.com
  • 2 edits in trunk/Tools

W3C test importer breaks svg files.
https://bugs.webkit.org/show_bug.cgi?id=202806

Reviewed by Jonathan Bedard.

The WebKit W3C importer tries to rewrite the xml/html/css files
when importing the tests to rewrite paths and such.

The issue is that to decide if rewrite the file or not uses the
mimetype and the current code was comparing for something like
if "xml" in str(mimetype[0])

But svg files have mimetype "image/svg+xml" so the previous code
was trying to rewrite svg files, breaking them.

This patches changes that code to only rewrite if the mimetype
also contains the "application/" or "text/" string.

It also adds an info log (printed when verbose enabled) to tell
that a file has been rewritten.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.import_tests):

2:57 PM Changeset in webkit [250991] by Devin Rousso
  • 17 edits
    6 deletes in trunk/Source/WebInspectorUI

Web Inspector: Sources: enable tab by default
https://bugs.webkit.org/show_bug.cgi?id=202341

Reviewed by Joseph Pecoraro.

The experimental Sources Tab has progressed enough that it can be enabled by default. There
are some new features that are only available in the Sources Tab that are also ready to be
used (e.g. local resource overrides).

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Base/Setting.js:
  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.showResources):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager):
(WI.NetworkManager.supportsLocalResourceOverrides):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForURL):

  • UserInterface/Views/DefaultDashboardView.js:

(WI.DefaultDashboardView.prototype._resourcesItemWasClicked):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/SearchResultTreeElement.js:

(WI.SearchResultTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/SourcesTabContentView.js:

(WI.SourcesTabContentView.isTabAllowed): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.css: Removed.
  • UserInterface/Views/DebuggerSidebarPanel.js: Removed.
  • UserInterface/Views/DebuggerTabContentView.js: Removed.
  • UserInterface/Views/ResourceSidebarPanel.css: Removed.
  • UserInterface/Views/ResourceSidebarPanel.js: Removed.
  • UserInterface/Views/ResourcesTabContentView.js: Removed.

Remove the experimental setting, as well as code for the Resources Tab and the Debugger Tab.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2:56 PM Changeset in webkit [250990] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Catalina] LayoutTest fast/canvas/webgl/texImage2D-mse-flip-{true,false}.html failing
https://bugs.webkit.org/show_bug.cgi?id=202771
<rdar://problem/49441298>

Reviewed by Eric Carlson.

Catalina no longer creates IOSurface-backed CVPixelBuffers by default for certain
codecs; make the CVPixelBuffers generated by WebCoreDecompressionSession IOSurface-backed
explicitly by passing in the correct attributes when creating the VTDecompressionSession.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):

2:38 PM Changeset in webkit [250989] by mmaxfield@apple.com
  • 4 edits in trunk

[Cocoa] font-family:system-ui on Chinese systems don't get Chinese quote marks
https://bugs.webkit.org/show_bug.cgi?id=202778
<rdar://problem/52594556>

Reviewed by Simon Fraser.

Source/WebCore:

This was caught by fast/text/international/system-language/han-quotes.html,
but we didn't have time to fix it until now.

Test: fast/text/international/system-language/han-quotes.html

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createSystemUIFont):

LayoutTests:

  • platform/mac/TestExpectations:
2:20 PM Changeset in webkit [250988] by Basuke Suzuki
  • 11 edits in trunk/Source

[WinCairo] Move remote communication handling from RemoteInspectorServer to RemoteInspector.
https://bugs.webkit.org/show_bug.cgi?id=202763

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

Because RemoteInspector now exists in UIProcess, the old implementation which communicate with RemoteInspector
in WebProcess and RemoteInspectorServer in UIProcess was meaningless or even bad. Remove this complex
implementation and move communication handling from RemoteInspectorServer to RemoteInspector and communicate
each other directly.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp:
  • inspector/remote/socket/RemoteInspectorConnectionClient.h:
  • inspector/remote/socket/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::~RemoteInspectorServer):
(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::didAccept):

  • inspector/remote/socket/RemoteInspectorServer.h:
  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::connect):
(Inspector::RemoteInspector::didClose):
(Inspector::RemoteInspector::sendWebInspectorEvent):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::pushListingsNow):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::setup):
(Inspector::RemoteInspector::sendMessageToTarget):
(Inspector::RemoteInspector::backendCommands const):
(Inspector::RemoteInspector::dispatchMap):
(Inspector::RemoteInspector::setupInspectorClient):
(Inspector::RemoteInspector::setupTarget):
(Inspector::RemoteInspector::frontendDidClose):
(Inspector::RemoteInspector::sendMessageToBackend):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::~RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::isListening):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::generateConnectionID):
(Inspector::RemoteInspectorSocketEndpoint::makeConnection):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::createListener):
(Inspector::RemoteInspectorSocketEndpoint::invalidateListener):
(Inspector::RemoteInspectorSocketEndpoint::getPort const):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:

Source/WebKit:

Remove deleted method invocations.

  • UIProcess/win/WebProcessPoolWin.cpp:

(WebKit::initializeRemoteInspectorServer):
(WebKit::WebProcessPool::platformInitialize):

1:30 PM Changeset in webkit [250987] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, tweak test to address flakiness on WK1.

  • media/media-source/media-source-page-cache-expected.txt:
  • media/media-source/media-source-page-cache.html:
1:29 PM Changeset in webkit [250986] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Serve correct exit codes when aborting
https://bugs.webkit.org/show_bug.cgi?id=202817

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/view_routes.py:

(ViewRoutes.error): Return exit code along with html string.

12:52 PM Changeset in webkit [250985] by youenn@apple.com
  • 7 edits
    3 adds in trunk

Do not timeout a load intercepted by service worker that receives a response
https://bugs.webkit.org/show_bug.cgi?id=202787

Reviewed by Chris Dumez.

Source/WebKit:

Stop making ServiceWorkerFetchTask ref counted since it is not needed and
can potentially make ServiceWorkerFetchTask oulive its WebSWServerToContextConnection member.

Stop the ServiceWorkerFetchTask timeout timer whenever receiving a response so that the load will not timeout in that case.
This ensures that a load that is starting in a service worker will not be failing.
Instead the load will go to network process.

Removed m_didReachTerminalState which is not needed as WebSWServerToContextConnection unregisters the ServiceWorkerFetchTask
as an IPC listener for all terminating messages.

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveFormData):
(WebKit::ServiceWorkerFetchTask::didFinish):
(WebKit::ServiceWorkerFetchTask::didFail):
(WebKit::ServiceWorkerFetchTask::didNotHandle):
(WebKit::ServiceWorkerFetchTask::timeoutTimerFired):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::startFetch):
(WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):
Use a Vector instead of a HasSet for performance reasons.
Update according fetch map using unique_ptr instead of Ref<>.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:

LayoutTests:

  • http/wpt/service-workers/fetch-timeout-worker.js: Added.

(async.doTest):

  • http/wpt/service-workers/fetch-timeout.https-expected.txt: Added.
  • http/wpt/service-workers/fetch-timeout.https.html: Added.
  • http/wpt/service-workers/resources/lengthy-pass.py:

(main):

12:49 PM Changeset in webkit [250984] by Matt Lewis
  • 2 edits in trunk/Tools

Emergency unittest fix for wkbuild.

Unreviewed test fix.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):

12:42 PM Changeset in webkit [250983] by mmaxfield@apple.com
  • 3 edits
    4 adds in trunk

FontFaceSet's ready promise is not always resolved
https://bugs.webkit.org/show_bug.cgi?id=202548

Reviewed by Youenn Fablet.

Source/WebCore:

When we do layout on an element, FontRanges::glyphDataForCharacter() will cause the first
available font to start loading, but will continue looking at subsequent fonts to see if
there's a good one we can render while the load is happening. When looking for a fallback
font, it calls FontRanges::Range::font() with a ExternalResourceDownloadPolicy set to
Forbid. This is fine, except that a side effect of calling this function is that the
CSSFontFace marks itself as Loading, which means document.fonts.ready is deferred. Then,
the load finishes, and the subsequent CSSFontFace is never actually used, meaning it never
exits the Loading state, which means document.fonts.ready never fires.

The solution to this is to just only allow the font to enter the Loading state if it's not
one of these "subsequent" fonts.

Test: fast/text/fontfaceset-ready-not-fired.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::pump):

LayoutTests:

  • fast/text/fontfaceset-ready-not-fired-expected.txt: Added.
  • fast/text/fontfaceset-ready-not-fired.html: Added.
  • fast/text/fontfaceset-ready-not-fired-2-expected.txt: Added.
  • fast/text/fontfaceset-ready-not-fired-2.html: Added.
12:40 PM Changeset in webkit [250982] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative fix build failure on 32bit
https://bugs.webkit.org/show_bug.cgi?id=202569

  • llint/LowLevelInterpreter32_64.asm:
11:44 AM Changeset in webkit [250981] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

Updated new Catalina queues names as per new Buildbot naming scheme
https://bugs.webkit.org/show_bug.cgi?id=202816

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Renamed builder name and removed spaces.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Ditto.
11:42 AM Changeset in webkit [250980] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

MockRealtimeVideoSource::setFrameRateWithPreset should not use preset after moving it
https://bugs.webkit.org/show_bug.cgi?id=202800

Reviewed by Alexey Proskuryakov.

This does not affect behavior right now since clients typically get the intrinsic size through media samples.
But this could create some inconsistencies.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::setFrameRateWithPreset):

11:35 AM Changeset in webkit [250979] by Matt Lewis
  • 3 edits in trunk/Tools

Fixing build scheduling for Catalina queues.
https://bugs.webkit.org/show_bug.cgi?id=202814

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Drive By fix of Trigger.
  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

11:23 AM Changeset in webkit [250978] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html is failing after r250361
https://bugs.webkit.org/show_bug.cgi?id=202777
<rdar://problem/56128421>

Reviewed by Tim Horton.

This layout test is intended to verify that pinching to zoom out in an element with touch-action: pinch-zoom
will cause the page scale to change (i.e. decrease). This test works on iPhone, where the initial-scale meta
viewport property is respected. However, a desktop viewport configuration is used by default on iPad, which
ignores the initial-scale property by default.

Prior to r250361, we would always try and scale down content to fit within the viewport, such that the initial
scale in this layout test on iPad would be approximately 0.384; this meant that the test would pass, regardless
of whether it even attempted to pinch zoom at all, since it would always pass the pageScale != 1 assertion.

However, after r250361, we now no longer attempt to scale down to fit the viewport when the content width is
excessively large (the maximum width breakpoint is 1920px), which makes the initial scale 1. This layout test
makes the content width 2000px, which exceeds this maximum width limit and causes us to avoid shrinking to fit.
This means that we'll end up failing the pageScale assertion and timing out as a result.

To fix this, simply mark the test as contentMode=mobile, such that even on iPad, we'll respect the
initial-scale meta viewport property, and the test will actually pinch to zoom the page out as expected.

  • pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html:
11:04 AM Changeset in webkit [250977] by Devin Rousso
  • 5 edits in trunk/Source/WebCore

Web Inspector: Timelines: don't call willDispatchEvent/didDispatchEvent unless there is a listener for the event
https://bugs.webkit.org/show_bug.cgi?id=202713

Reviewed by Joseph Pecoraro.

Fixes failing inspector/timeline/timeline-recording.html after r250672. This was because the
InspectorTimelineAgent expected a corresponding willDispatchEvent before it was told
about the didDispatchEvent, which wasn't happening since only willDispatchEvent would
early-return if the DOMWindow didn't have any event listeners for the dispatched event. By
making the DOMWindow::dispatchEvent itself early-return in that case, it now handles both
willDispatchEvent and didDispatchEvent, ensuring that they are always called in pairs.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchEvent):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willDispatchEvent):
(WebCore::InspectorInstrumentation::didDispatchEvent):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
(WebCore::InspectorInstrumentation::didDispatchEventOnWindow):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willDispatchEventImpl):
(WebCore::InspectorInstrumentation::didDispatchEventImpl):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
(WebCore::InspectorInstrumentation::didDispatchEventOnWindowImpl):
InspectorInstrumentation::willDispatchEventImpl was always called with hasEventListeners
as true, so there's no reason to keep that parameter around. Similarly, the change inside
DOMWindow::dispatchEvent will make it so that the same is true for
InspectorInstrumentation::willDispatchEventOnWindowImpl as well.

10:17 AM Changeset in webkit [250976] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Flaky Test: media/media-source/media-source-page-cache.html
https://bugs.webkit.org/show_bug.cgi?id=202775

Reviewed by Eric Carlson.

SourceBufferList should never prevent entering the page cache, even if it has
pending events in its queue. Its queue is a MainThreadGenericEventQueue, which
is Page Cache-aware and will properly suspend the firing of events when needed.

No new tests, covered by flaky test which should no longer be.

  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::canSuspendForDocumentSuspension const):

9:57 AM Changeset in webkit [250975] by sihui_liu@apple.com
  • 4 edits
    1 add in trunk

Add a unit test for StorageQuotaManager
https://bugs.webkit.org/show_bug.cgi?id=202755

Reviewed by Youenn Fablet.

Source/WebCore:

Expose state of StorageQuotaManager for newly added unit test.

  • storage/StorageQuotaManager.h:

(WebCore::StorageQuotaManager::state const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/StorageQuotaManager.cpp: Added.

(TestWebKitAPI::TEST):

9:37 AM Changeset in webkit [250974] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

SpeculativeLoad should use CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=202795

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-10
Reviewed by Chris Dumez.

SpeculativeLoad should use CompletionHandler, as remarked in
Bug 201641 review.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
9:17 AM Changeset in webkit [250973] by Wenson Hsieh
  • 34 edits
    8 copies
    5 adds
    1 delete in trunk

Support programmatic paste requests on macOS
https://bugs.webkit.org/show_bug.cgi?id=202773
<rdar://problem/48957166>

Reviewed by Tim Horton.

Source/WebCore:

Adds support for programmatic paste requests on macOS. See below for more details.

Tests: editing/pasteboard/dom-paste/dom-paste-confirmation.html

editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations.html
editing/pasteboard/dom-paste/dom-paste-rejection.html
editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html
editing/pasteboard/dom-paste/dom-paste-same-origin.html

  • editing/EditorCommand.cpp:

(WebCore::defaultValueForSupportedPaste):
(WebCore::supportedPaste):
(WebCore::allowPasteFromDOM):
(WebCore::enabledPaste):

Fixes an existing bug uncovered by the layout test editing/execCommand/clipboard-access.html, which tests the
results of document.queryCommandEnabled("copy") and document.queryCommandEnabled("paste"). The problem here
is that document.queryCommandEnabled("paste") returns true if DOM paste access requests are enabled, regardless
of whether or not there is an active user gesture. This is inconsistent with the behavior of "copy" and "cut",
which return false in the case where there is no user gesture (and the clipboard access policy is also equal to
ClipboardAccessPolicy::RequiresUserGesture -- refer to allowCopyCutFromDOM).

When pasting, we only DOM paste access requests to be triggered only in the case where there is a user gesture.
This means that enabledPaste should additionally be gated on a user gesture check. For consistency with the
implementation of enabledCopy, we introduce a allowPasteFromDOM helper that is similar to
allowCopyCutFromDOM, and additionally check this constraint when the paste command's source is the DOM (as
opposed to a menu or key binding).

This adjustment also adds a missing canDHTMLPaste() check prior to consulting canPaste(). This ensures that when
evaluating document.queryCommandEnabled("Paste"), we'll dispatch a "beforepaste" event, similar to how
evaluating document.queryCommandEnabled("Copy") dispatches a "beforecopy" event.

  • platform/LocalizedStrings.h:

Mark a function as WEBCORE_EXPORT.

Source/WebKit:

Adds support for programmatic paste requests on macOS, as well as some testing SPI in WKWebView to allow
WebKitTestRunner to grab the NSMenu used for the DOM paste request. This patch adopts the same strategy taken to
allow programmatic paste on iOS, by allowing programmatic pastes coming from the page to show platform UI which
the user must then interact with in order to proceed with the paste. See below for more details.

  • Shared/WebPreferencesDefaultValues.h:

Make this available on both iOS and macOS (iOS family is omitted for now, since callout bar UI is not generally
present on non-iOS iOS-family platforms such as Apple Watch).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _web_grantDOMPasteAccess]):

This selector is called when the user taps the Paste option in the presented NSMenu.

(-[WKWebView _activeMenu]):

Returns the currently active NSMenu. Only for testing purposes.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _web_grantDOMPasteAccess]):

Same exercise as above, only for WKView instead of WKWebView.

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::domPasteMenu const):

  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKDOMPasteMenuDelegate initWithWebViewImpl:]):
(-[WKDOMPasteMenuDelegate menuDidClose:]):
(-[WKDOMPasteMenuDelegate numberOfItemsInMenu:]):
(-[WKDOMPasteMenuDelegate confinementRectForMenu:onScreen:]):

Adds a new object, whose purpose is to be a delegate for the NSMenu that is presented when requesting DOM paste
access. This object is used instead of WKWebView, since API clients may end up making the WKWebView the delegate
for a different menu, in which case some implementations (either theirs or ours) of NSMenuDelegate methods would
not be called. Avoiding this would require the client to be aware that WKWebView conforms to NSMenuDelegate,
which is only declared privately.

(WebKit::WebViewImpl::handleProcessSwapOrExit):

On process swap or exit, automatically bail out of any pending DOM paste request by denying it.

(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult):

Handle the DOM paste request by showing an NSMenu near the mouse cursor with a single option to paste.

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

(WebKit::PageClientImpl::requestDOMPasteAccess):

Tools:

Adds new testing support to enable us to test programmatic paste requests on macOS.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:

Add a few new UIScriptController methods:

  • activateAtPoint(x, y, callback): used to activate content underneath at (x, y), in root view coordinates (WKWebView on macOS, and WKContentView on iOS). On macOS, this moves the mouse to the given location and clicks.
  • chooseMenuAction(action, callback): used to select a menu item with the given title.
  • dismissMenu(): dismisses the platform menu.

Note that dismissMenu and chooseMenuAction currently only work for the DOM paste menu, but could be extended in
the future to handle the system context menu.

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::dismissMenu):
(WTR::UIScriptController::chooseMenuAction):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::activateAtPoint):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView initWithFrame:configuration:]):
(-[TestRunnerWKWebView _didShowMenu]):
(-[TestRunnerWKWebView _didHideMenu]):

Make these present across both macOS and iOS. On macOS, we listen for NSMenuDidBeginTrackingNotification and
NSMenuDidEndTrackingNotification to know when a menu has been shown or dismissed.

(-[TestRunnerWKWebView dismissActiveMenu]):
(-[TestRunnerWKWebView resetInteractionCallbacks]):

Make these available on both iOS and macOS. The only interaction callbacks on macOS are currently
didShowMenuCallback and didHideMenuCallback.

(-[TestRunnerWKWebView _willHideMenu]):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setDidShowMenuCallback):
(WTR::UIScriptControllerCocoa::setDidHideMenuCallback):
(WTR::UIScriptControllerCocoa::dismissMenu):
(WTR::UIScriptControllerCocoa::isShowingMenu const):

Move these implementations into UIScriptControllerCocoa, from UIScriptControllerIOS.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

Instead of clearing all interaction callbacks in TestControllerIOS, do it in TestControllerCocoa where it
affects both macOS and iOS.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::activateAtPoint):
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::chooseMenuAction):
(WTR::UIScriptControllerIOS::rectForMenuAction const):
(WTR::UIScriptControllerIOS::setDidShowMenuCallback): Deleted.
(WTR::UIScriptControllerIOS::setDidHideMenuCallback): Deleted.
(WTR::UIScriptControllerIOS::isShowingMenu const): Deleted.

Abstract rectForMenuAction and singleTapAtPointWithModifiers out into private helper methods, such that they can
be used from within other script controller methods.

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

Implement the new script controller hooks on macOS.

(WTR::UIScriptControllerMac::clearAllCallbacks):
(WTR::UIScriptControllerMac::chooseMenuAction):
(WTR::UIScriptControllerMac::activateAtPoint):

LayoutTests:

Refactors existing layout tests for programmatic paste requests on iOS, such that they now run in both iOS and
macOS. See below for more details.

  • TestExpectations:
  • editing/pasteboard/dom-paste/dom-paste-confirmation-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation-expected.txt.
  • editing/pasteboard/dom-paste/dom-paste-confirmation.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation.html.
  • editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations-expected.txt: Added.
  • editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-consecutive-confirmations.html.
  • editing/pasteboard/dom-paste/dom-paste-rejection-expected.txt: Added.
  • editing/pasteboard/dom-paste/dom-paste-rejection.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-rejection.html.
  • editing/pasteboard/dom-paste/dom-paste-requires-user-gesture-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-requires-user-gesture-expected.txt.
  • editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-requires-user-gesture.html.
  • editing/pasteboard/dom-paste/dom-paste-same-origin-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-same-origin-expected.txt.
  • editing/pasteboard/dom-paste/dom-paste-same-origin.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-same-origin.html.
  • editing/pasteboard/dom-paste/resources/dom-paste-helper.js: Added.

Re-word some of these layout tests' descriptions to reference "clicks or taps", instead of just "taps", and also
replace mentions of "callout bars" with platform-agnostic "menus".

(return.new.Promise.):
(async._waitForOrTriggerPasteMenu):
(async.triggerPasteMenuAfterActivatingLocation):
(async.waitForPasteMenu):

Refactor these testing helpers to support both iOS and macOS:

(1) Replace code that finds callout bar menu items and synthesizes taps on iOS, with code that instead chooses a
menu item with the given title (in this case, "Paste"). This is supported on both macOS and iOS, where we invoke
the NSMenuItem's action and dismiss the menu item, and find and tap the callout bar menu item, respectively.

(2) Implement UIScriptController::activateAtPoint, which is used as a cross-platform way of activating an
element at the given point. On iOS, this taps the given location, and on macOS, this moves the mouse to that
location and then simulates a click (mouse down and mouse up). In a subsequent patch, we should additionally use
this in the implementation of UIHelper.activateAt().

  • editing/pasteboard/ios/dom-paste-consecutive-confirmations-expected.txt: Removed.
  • editing/pasteboard/ios/dom-paste-rejection-expected.txt: Removed.
  • editing/pasteboard/ios/resources/dom-paste-helper.js: Removed.
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Skip editing/pasteboard/dom-paste everywhere for now, except for macOS and iOS WebKit2.

8:56 AM Changeset in webkit [250972] by youenn@apple.com
  • 64 edits
    47 adds
    14 deletes in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc third-party jsoncpp to M78
https://bugs.webkit.org/show_bug.cgi?id=202729

Reviewed by Eric Carlson.

  • Source/third_party/jsoncpp: Updated.
8:31 AM Changeset in webkit [250971] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Lots of media related tests crashing or flaky after r250918 - [ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=202784

Unreviewed, fix GTK and WPE test crashes.

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::render): Reconfigure if necessary.
(WebCore::WrappedMockRealtimeAudioSource::reconfigure): New, setup for rendering.
(WebCore::WrappedMockRealtimeAudioSource::settingsDidChange): Call reconfigure.

8:19 AM Changeset in webkit [250970] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Increase default limit for test results (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=202757

Unreviewed follow-up fix.

  • resultsdbpy/resultsdbpy/view/templates/commits.html: Switch default and maximum limits.
8:15 AM Changeset in webkit [250969] by youenn@apple.com
  • 13 edits in trunk/Source

Remove unified plan runtime flag
https://bugs.webkit.org/show_bug.cgi?id=202721

Reviewed by Geoffrey Garen.

Source/WebCore:

Covered by existing tests.

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::RTCRtpSender):

  • Modules/mediastream/RTCRtpTransceiver.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
(WebCore::LibWebRTCMediaEndpoint::collectTransceivers):
(WebCore::LibWebRTCMediaEndpoint::removeRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::OnTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiverFromTrackOrKind):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::replaceTrack):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):

  • testing/Internals.cpp:

(WebCore::Internals::useMockRTCPeerConnectionFactory):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsConstructed): Remove ability to disable unified plan.

8:14 AM Changeset in webkit [250968] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Flaky Test: imported/w3c/web-platform-tests/offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.html
https://bugs.webkit.org/show_bug.cgi?id=202782

Patch by Chris Lord <Chris Lord> on 2019-10-10
Reviewed by Youenn Fablet.

Some OffscreenCanvas tests are failing due to unhandled Promise
rejection from unimplemented API. Mark this, and other tests that are
affected with DumpJSConsoleLogInStdErr.

7:57 AM Changeset in webkit [250967] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Remove a "The " in "The The HTTP headers of the response"
https://bugs.webkit.org/show_bug.cgi?id=194851

Reviewed by Carlos Garcia Campos.

  • Shared/API/glib/WebKitURIResponse.cpp:

(webkit_uri_response_class_init): Fix typo in description of the WebKitURIResponse::http-headers property.

7:47 AM Changeset in webkit [250966] by Jonathan Bedard
  • 6 edits in trunk/Tools

results.webkit.org: Start reporting results
https://bugs.webkit.org/show_bug.cgi?id=202639

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig): Load API key for results.webkit.org.

  • BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py:

(create_mock_slave_passwords_dict): Add mock for API key.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunWebKitTests): Start reporting to results.webkit.org.
(RunWebKitTests.init): Do not print the environment to hide the API key.
(RunWebKitTests.start): Add the API key to the environment.
(RunAPITests): Start reporting to results.webkit.org.
(RunAPITests.init): Do not print the environment to hide the API key.
(RunAPITests.start): Add the API key to the environment.
(RunPythonTests): Start reporting to results.webkit.org.
(RunPythonTests.init): Do not print the environment to hide the API key.
(RunPythonTests.start): Add the API key to the environment.

  • Scripts/webkitpy/results/upload.py:

(Upload):
(Upload.upload): Add API_KEY, if it exists, to the request.
(Upload.upload_archive): Ditto.

7:24 AM Changeset in webkit [250965] by Chris Dumez
  • 7 edits
    2 adds in trunk

DOMCacheStorage should not prevent pages from entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=202608

Reviewed by Youenn Fablet.

Source/WebCore:

Make DOMCacheStorage fully suspendable by queueing all its asynchronous promise resolutions
to a SuspendableTaskQueue. This makes sure that no promises are resolved while suspended
in the page cache.

Test: http/tests/navigation/page-cache-domcachestorage-pending-promise.html

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::DOMCacheStorage):
(WebCore::DOMCacheStorage::doSequentialMatch):
(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::remove):
(WebCore::DOMCacheStorage::doRemove):
(WebCore::DOMCacheStorage::keys):
(WebCore::DOMCacheStorage::canSuspendForDocumentSuspension const):

  • Modules/cache/DOMCacheStorage.h:

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/page-cache-domcachestorage-pending-promise-expected.txt: Added.
  • http/tests/navigation/page-cache-domcachestorage-pending-promise.html: Added.
4:19 AM Changeset in webkit [250964] by youenn@apple.com
  • 3 edits
    1130 copies
    119 adds
    1 delete in trunk/Source/ThirdParty/libwebrtc

Rename yasm-1.3.0 folder to yasm
https://bugs.webkit.org/show_bug.cgi?id=202725

Reviewed by Eric Carlson.

To align with upstream repository.

  • Configurations/yasm.xcconfig:
  • Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
  • libwebrtc.xcodeproj/project.pbxproj:
3:38 AM Changeset in webkit [250963] by magomez@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK and WPE gardening after r250954.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
2:17 AM Changeset in webkit [250962] by youenn@apple.com
  • 421 edits
    14 copies
    4 moves
    176 adds
    3 deletes in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc third-party abseilcpp to M78
https://bugs.webkit.org/show_bug.cgi?id=202726

Reviewed by Alex Christensen.

  • CMakeLists.txt: Remove optional.cc.
  • Source/third_party/abseil-cpp: Updated.
  • libwebrtc.xcodeproj/project.pbxproj: Remove optional.cc.
1:45 AM Changeset in webkit [250961] by youenn@apple.com
  • 12 edits in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc third-party opus to M78
https://bugs.webkit.org/show_bug.cgi?id=202728

Reviewed by Alex Christensen.

  • Source/third_party/opus: Updated.
1:16 AM Changeset in webkit [250960] by youenn@apple.com
  • 47 edits
    1 delete in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc third-arty libyuv to M78
https://bugs.webkit.org/show_bug.cgi?id=202727

Reviewed by Alex Christensen.

libyuv

  • Source/third_party/libyuv: Updated.
1:00 AM Changeset in webkit [250959] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac] Allow SYS_pthread_markcancel call
https://bugs.webkit.org/show_bug.cgi?id=202723

Reviewed by Alex Christensen.

Allow this pthread call as libwebrtc uses it on the Mac as well.

  • WebProcess/com.apple.WebProcess.sb.in:
12:44 AM Changeset in webkit [250958] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add asserts to MediaStreamPrivate observer routines
https://bugs.webkit.org/show_bug.cgi?id=202724

Reviewed by Alex Christensen.

These methods are only to be called in main thread.
Add asserts to validate this.
No change of behavior.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::addObserver):
(WebCore::MediaStreamPrivate::removeObserver):
(WebCore::MediaStreamPrivate::forEachObserver const):

Oct 9, 2019:

11:59 PM Changeset in webkit [250957] by youenn@apple.com
  • 4 edits in trunk/Source

A service worker process should not be created when enqueuing a service worker job
https://bugs.webkit.org/show_bug.cgi?id=202578
<rdar://problem/55979690>

Reviewed by Chris Dumez.

Source/WebCore:

Ask for a service worker context connection when planning to install or run a service worker.
This allows to not spin unnecessarily service worker processes for jobs that do not end up installing a service worker.

Covered by existing tests.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::runServiceWorkerIfNecessary):

Source/WebKit:

Remove the calls to create service worker context connection.
They are now done at SWServer level when trying to either run a service worker or install one.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):

10:28 PM Changeset in webkit [250956] by yurys@chromium.org
  • 5 edits in trunk/LayoutTests

LayoutTest inspector/dom-debugger/node-removed.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=154610
<rdar://problem/24801209>

Reviewed by Matt Baker.

Reenabled the test on all platforms.

The test was missing call to Debugger.setBreakpointsActive. Apparently at the time
it was written calling Debugger.setBreakpoint automatically activated breakpoint but
the behavior changed over time. I also removed some unnecessary code.

  • inspector/dom-debugger/node-removed-expected.txt:
  • inspector/dom-debugger/node-removed.html:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
10:12 PM Changeset in webkit [250955] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r250948): Web Inspector: Styles: CSS selector becomes gray after stopping editing without modifying it
https://bugs.webkit.org/show_bug.cgi?id=202781

Reviewed by Matt Baker.

When not editing, CSS selectors that match the selected node are highlighted (black in the light mode,
white in the dark mode). When editing starts, span elements that provide highlighting get removed.
When editing stops, active selectors should get highlighted.

r250948 stopped calling _renderSelector when selector wasn't modified.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidCommit):

  • UserInterface/Views/SpreadsheetSelectorField.js:

(WI.SpreadsheetSelectorField.prototype._handleBlur):

8:08 PM Changeset in webkit [250954] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the internal iOS build

  • page/PointerCaptureController.h: Add some missing forward declarations.
7:23 PM Changeset in webkit [250953] by Keith Rollin
  • 3 edits in trunk/Source/WTF

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=202371
<rdar://problem/55853960>

Reviewed by Youenn Fablet.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Dean Jackson was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
7:02 PM Changeset in webkit [250952] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Make fast/text/complex-initial-advance.html more robust
https://bugs.webkit.org/show_bug.cgi?id=202708

Unreviewed follow up to r250884.

Makes test robust enough to pass on Mojave.

  • fast/text/complex-initial-advance-expected.html:
  • fast/text/complex-initial-advance.html:
6:44 PM Changeset in webkit [250951] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix an asserition after r250937.

Space increase tasks will be finished once it's started.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::finishSpaceIncreaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):

6:27 PM Changeset in webkit [250950] by Wenson Hsieh
  • 25 edits
    1 copy in trunk/Source

[Clipboard API] Refactor Pasteboard item reading functions to work on both iOS and macOS
https://bugs.webkit.org/show_bug.cgi?id=202647

Reviewed by Tim Horton.

Source/WebCore:

Moves some pasteboard helper functions out of iOS-specific code, and into platform-agnostic code. See below for
more details. There is no change in behavior, as nothing exercises these new pasteboard functions on macOS yet.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::allPasteboardItemInfo const):
(WebCore::Pasteboard::pasteboardItemInfo const):
(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::readBuffer):
(WebCore::Pasteboard::readURL):

Add some new helpers on Pasteboard to read Strings, data, and URLs from the platform pasteboard. These forward
to the platform strategy which, in WebKit2, are currently implemented using sync IPC, but could be changed in
the future to be fully asynchronous.

  • platform/Pasteboard.h:

(WebCore::Pasteboard::name const):

Expose a cross-platform name() getter on Pasteboard. On non-Cocoa platforms, this simply returns the empty
string, but on macOS and iOS, this returns the platform pasteboard name, which is stored in m_pasteboardName.

  • platform/PasteboardItemInfo.h:

(WebCore::PasteboardItemInfo::pathForContentType const):
(WebCore::PasteboardItemInfo::contentTypeForHighestFidelityItem const):
(WebCore::PasteboardItemInfo::encode const):
(WebCore::PasteboardItemInfo::decode):

Adds a couple of new members to PasteboardItemInfo (which represents metadata about a given item in the platform
pasteboard). These are changeCount (which is self explanatory), and webSafeTypesByFidelity, which is a list of
types in fidelity order which contains the list of pasteboard types that are safe to expose to bindings. These
may include types such as "text/plain", "text/html", "text/uri-list", and "image/png".

To distinguish this list from the existing contentTypesByFidelity list, I've also renamed contentTypesByFidelity
to platformTypesByFidelity, to make it more obvious that this other list of types are platform-specific, and not
generally safe to expose to the web.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:

Move several helpers out into platform-agnostic code.

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

  • platform/cocoa/PlatformPasteboardCocoa.mm: Added.

Add a new file to contain the implementation of PlatformPasteboard::allPasteboardItemInfo, which is the same
across Cocoa platforms.

(WebCore::PlatformPasteboard::allPasteboardItemInfo):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readRespectingUTIFidelities):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::informationForItemAtIndex):
(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readURL const):

Additionally refactor all methods on PlatformPasteboard that take pasteboard item indices as signed integers
(int) to receive size_t values instead.

(WebCore::PlatformPasteboard::allPasteboardItemInfo): Deleted.

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::read):

  • platform/libwpe/PlatformPasteboardLibWPE.cpp:

(WebCore::PlatformPasteboard::readString const):

Add an implementation stub for WPE.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::modernPasteboardTypeForWebSafeMIMEType):
(WebCore::webSafeMIMETypeForModernPasteboardType):

Add helpers to convert between modern NSPasteboardTypes and web-safe types. While some logic exists today on
macOS to convert between legacy pasteboard types and web-safe types, conversion between the modern pasteboard
types and web-safe types are needed since NSPasteboardItem's types only support NSPasteboardTypes and
dynamically declared types that match the format of a universal type identfier (for instance, "com.foo.bar").

(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readURL const):
(WebCore::PlatformPasteboard::count const):
(WebCore::PlatformPasteboard::informationForItemAtIndex):

Implement all of these helpers by looking up the NSPasteboardItem at the given item index and querying it for
data for non-legacy pasteboard types.

(WebCore::PlatformPasteboard::itemAtIndex const):

Source/WebKit:

Refactor iOS-specific pasteboard functions to be platform-agnostic. See WebCore ChangeLog for more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/wpe/WebPasteboardProxyWPE.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::informationForItemAtIndex):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):
(WebKit::WebPlatformStrategies::readStringFromPasteboard):
(WebKit::WebPlatformStrategies::writeToPasteboard):
(WebKit::WebPlatformStrategies::updateSupportedTypeIdentifiers):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Refactor iOS-specific pasteboard functions to be platform-agnostic. See WebCore ChangeLog for more details.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::informationForItemAtIndex):
(WebPlatformStrategies::allPasteboardItemInfo):
(WebPlatformStrategies::getPasteboardItemsCount):
(WebPlatformStrategies::readBufferFromPasteboard):
(WebPlatformStrategies::readURLFromPasteboard):
(WebPlatformStrategies::readStringFromPasteboard):
(WebPlatformStrategies::writeToPasteboard):
(WebPlatformStrategies::updateSupportedTypeIdentifiers):

6:01 PM Changeset in webkit [250949] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Try to fix build for Windows C_LOOP

  • llint/LowLevelInterpreter.asm:
5:55 PM Changeset in webkit [250948] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Modifying CSS selector by pressing Enter or Tab causes 2 CSS.setRuleSelector backend calls
https://bugs.webkit.org/show_bug.cgi?id=202769
<rdar://problem/56132166>

Reviewed by Matt Baker.

Previously, spreadsheetSelectorFieldDidChange would get called twice:

  1. On Enter or Tab key press.
  2. On blur event.

With this patch, it only gets called on blur event.

  • UserInterface/Models/CSSRule.js:

(WI.CSSRule.prototype.set selectorText):
Remove dead code. Calling _selectorResolved(true) would cause an uncaught exception.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange): Removed.
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidCommit): Added.
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldWillNavigate): Added.
Split spreadsheetSelectorFieldDidChange into spreadsheetSelectorFieldDidCommit and spreadsheetSelectorFieldWillNavigate.

  • UserInterface/Views/SpreadsheetSelectorField.js:

(WI.SpreadsheetSelectorField):
(WI.SpreadsheetSelectorField.prototype.startEditing):
(WI.SpreadsheetSelectorField.prototype.stopEditing):
(WI.SpreadsheetSelectorField.prototype._handleBlur):
(WI.SpreadsheetSelectorField.prototype._handleKeyDown):
Add _valueBeforeEditing to check if the value was modified before the blur event.
Similar logic exists in SpreadsheetTextField.

5:36 PM Changeset in webkit [250947] by Alan Coon
  • 25 edits
    13 deletes in tags/Safari-609.1.6

Revert r250540. rdar://problem/56052722

5:24 PM Changeset in webkit [250946] by Simon Fraser
  • 45 edits
    1 move
    1 add
    1 delete in trunk

Rename WheelEventTestTrigger and improve naming in related code
https://bugs.webkit.org/show_bug.cgi?id=202772

Reviewed by Tim Horton.

Change the "test trigger" terminology to "monitor wheel events"; after all, tests
call monitorWheelEvents() and callAfterScrollingCompletes(), and this is not triggering
a test.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/FrameView.cpp:

(WebCore::FrameView::adjustScrollbarsForLayout):
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::didAddScrollbar):

  • page/Page.cpp:

(WebCore::Page::ensureWheelEventTestMonitor):
(WebCore::Page::ensureTestTrigger): Deleted.

  • page/Page.h:

(WebCore::Page::wheelEventTestMonitor const):
(WebCore::Page::clearWheelEventTestMonitor):
(WebCore::Page::isMonitoringWheelEvents const):
(WebCore::Page::testTrigger const): Deleted.
(WebCore::Page::clearTrigger): Deleted.
(WebCore::Page::expectsWheelEventTriggers const): Deleted.

  • page/WheelEventTestMonitor.cpp: Added.

(WebCore::WheelEventTestMonitor::WheelEventTestMonitor):
(WebCore::WheelEventTestMonitor::clearAllTestDeferrals):
(WebCore::WheelEventTestMonitor::setTestCallbackAndStartNotificationTimer):
(WebCore::WheelEventTestMonitor::deferForReason):
(WebCore::WheelEventTestMonitor::removeDeferralForReason):
(WebCore::WheelEventTestMonitor::triggerTestTimerFired):
(WebCore::operator<<):

  • page/WheelEventTestMonitor.h: Renamed from Source/WebCore/page/WheelEventTestTrigger.h.
  • page/WheelEventTestTrigger.cpp: Removed.
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformPrepareForWheelEvents):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::updateIsMonitoringWheelEventsForFrameView):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::deferWheelEventTestCompletionForReason const):
(WebCore::AsyncScrollingCoordinator::removeWheelEventTestCompletionDeferralForReason const):
(WebCore::AsyncScrollingCoordinator::updateExpectsWheelEventTestTriggerWithFrameView): Deleted.
(WebCore::AsyncScrollingCoordinator::deferTestsForReason const): Deleted.
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason const): Deleted.

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

(WebCore::ScrollingCoordinator::updateIsMonitoringWheelEventsForFrameView):
(WebCore::ScrollingCoordinator::updateExpectsWheelEventTestTriggerWithFrameView): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateScrollingNode::setIsMonitoringWheelEvents):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):
(WebCore::ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::isMonitoringWheelEvents const):
(WebCore::ScrollingStateScrollingNode::expectsWheelEventTestTrigger const): Deleted.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::deferWheelEventTestCompletionForReason):
(WebCore::ScrollingTree::removeWheelEventTestCompletionDeferralForReason):
(WebCore::ScrollingTree::deferTestsForReason): Deleted.
(WebCore::ScrollingTree::removeTestDeferralForReason): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):

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

(WebCore::ThreadedScrollingTree::deferWheelEventTestCompletionForReason):
(WebCore::ThreadedScrollingTree::removeWheelEventTestCompletionDeferralForReason):
(WebCore::ThreadedScrollingTree::deferTestsForReason): Deleted.
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason): Deleted.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::deferWheelEventTestCompletionForReason const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::removeWheelEventTestCompletionDeferralForReason const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::deferTestsForReason const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::removeTestDeferralForReason const): Deleted.

  • platform/Logging.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::deferWheelEventTestCompletionForReason const):
(WebCore::ScrollAnimator::removeWheelEventTestCompletionDeferralForReason const):
(WebCore::ScrollAnimator::deferTestsForReason const): Deleted.
(WebCore::ScrollAnimator::removeTestDeferralForReason const): Deleted.

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::setWheelEventTestMonitor):
(WebCore::ScrollAnimator::ScrollAnimator::setWheelEventTestTrigger): Deleted.

  • platform/cocoa/ScrollController.h:

(WebCore::ScrollControllerClient::deferWheelEventTestCompletionForReason const):
(WebCore::ScrollControllerClient::removeWheelEventTestCompletionDeferralForReason const):
(WebCore::ScrollControllerClient::deferTestsForReason const): Deleted.
(WebCore::ScrollControllerClient::removeTestDeferralForReason const): Deleted.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::startSnapRubberbandTimer):
(WebCore::ScrollController::stopSnapRubberbandTimer):
(WebCore::ScrollController::scheduleStatelessScrollSnap):
(WebCore::ScrollController::startDeferringWheelEventTestCompletionDueToScrollSnapping):
(WebCore::ScrollController::stopDeferringWheelEventTestCompletionDueToScrollSnapping):
(WebCore::ScrollController::startScrollSnapTimer):
(WebCore::ScrollController::stopScrollSnapTimer):
(WebCore::ScrollController::startDeferringTestsDueToScrollSnapping): Deleted.
(WebCore::ScrollController::stopDeferringTestsDueToScrollSnapping): Deleted.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::didBeginScrollGesture const):
(WebCore::ScrollAnimatorMac::didEndScrollGesture const):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):

  • rendering/RenderBox.cpp:

(WebCore::setupWheelEventMonitor):
(WebCore::RenderBox::setScrollLeft):
(WebCore::RenderBox::setScrollTop):
(WebCore::setupWheelEventTestTrigger): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar):

  • rendering/RenderListBox.cpp:

(WebCore::setupWheelEventTestMonitor):
(WebCore::RenderListBox::setScrollTop):
(WebCore::RenderListBox::createScrollbar):
(WebCore::setupWheelEventTestTrigger): Deleted.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::monitorWheelEvents):
(WebCoreTestSupport::setTestCallbackAndStartNotificationTimer):
(WebCoreTestSupport::clearWheelEventTestMonitor):
(WebCoreTestSupport::clearWheelEventTestTrigger): Deleted.

  • testing/js/WebCoreTestSupport.h:

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp:

(WKPageClearWheelEventTestMonitor):
(WKPageClearWheelEventTestTrigger): Deleted.

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::clearWheelEventTestMonitor):
(WebKit::WebPageProxy::clearWheelEventTestTrigger): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageStartMonitoringScrollOperations):
(WKBundlePageRegisterScrollOperationCompletionCallback):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar):

  • WebProcess/WebPage/EventDispatcher.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::clearWheelEventTestMonitor):
(WebKit::WebPage::clearWheelEventTestTrigger): Deleted.

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

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):

5:13 PM Changeset in webkit [250945] by dbates@webkit.org
  • 6 edits
    1 add in trunk

Add support for CompactPointerTuple<..., OptionSet<...>>
https://bugs.webkit.org/show_bug.cgi?id=201316

Reviewed by Yusuke Suzuki.

Source/WebCore:

Use the new CompactPointerTuple capability to replace CompactPointerTuple<RenderObject*, uint8_t>
with CompactPointerTuple<RenderObject*, OptionSet<ElementStyleFlag>> in Node.h.

  • dom/Node.h:

(WebCore::Node::hasStyleFlag const):
(WebCore::Node::setStyleFlag):
(WebCore::Node::clearStyleFlags):
Update code now that we support CompactPointerTuple<..., OptionSet<...>>.

Source/WTF:

Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
to see the set flags in such a CompactPointerTuple.

  • wtf/CompactPointerTuple.h:

Tools:

Add a test to ensure we encode and decode a compact pointer tuple correctly when an uint8_t and
a OptionSet<> as the byte value portion of the tuple.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/CompactPointerTuple.cpp: Added.

(TestWebKitAPI::TEST):

5:03 PM Changeset in webkit [250944] by wilander@apple.com
  • 20 edits
    8 adds in trunk

IsLoggedIn: Add as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=202707
<rdar://problem/56095064>

Reviewed by Brent Fulgham and Chris Dumez.

IsLoggedIn was proposed to the WebAppSec WG at TPAC 2019.
So far there is only an explainer posted to the mailing list:
https://lists.w3.org/Archives/Public/public-webappsec/2019Sep/0004.html

Source/WebCore:

This patch adds the three experimental web APIs:

  • Promise<void> setLoggedIn()
  • Promise<void> setLoggedOut()
  • Promise<bool> isLoggedIn()

It also tests that those APIs are only exposed in secure contexts.

The functionality is implemented as a supplement to Navigator.

Tests: http/tests/is-logged-in/available-in-secure-contexts.https.html

http/tests/is-logged-in/unavailable-in-insecure-contexts.html

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/NavigatorIsLoggedIn.cpp: Added.

(WebCore::NavigatorIsLoggedIn::from):
(WebCore::NavigatorIsLoggedIn::supplementName):
(WebCore::NavigatorIsLoggedIn::setLoggedIn):
(WebCore::NavigatorIsLoggedIn::setLoggedOut):
(WebCore::NavigatorIsLoggedIn::isLoggedIn):

  • page/NavigatorIsLoggedIn.h: Added.
  • page/NavigatorIsLoggedIn.idl: Added.
  • page/PointerCaptureController.cpp:
  • page/PointerCaptureController.h:
  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • http/tests/is-logged-in/available-in-secure-contexts.https-expected.txt: Added.
  • http/tests/is-logged-in/available-in-secure-contexts.https.html: Added.
  • http/tests/is-logged-in/unavailable-in-insecure-contexts-expected.txt: Added.
  • http/tests/is-logged-in/unavailable-in-insecure-contexts.html: Added.
  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wincairo-wk1/TestExpectations:
4:50 PM Changeset in webkit [250943] by russell_e@apple.com
  • 6 edits
    1 delete in trunk

Unreviewed, rolling out r250930.

Broke watchOS Builds

Reverted changeset:

"Add support for CompactPointerTuple<..., OptionSet<...>>"
https://bugs.webkit.org/show_bug.cgi?id=201316
https://trac.webkit.org/changeset/250930

4:39 PM Changeset in webkit [250942] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] LayoutTest fast/events/touch/ios/double-tap-for-double-click2.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=202765
<rdar://problem/56123067>

Reviewed by Wenson Hsieh.

Currently when a dblclick handler is dynamically registered while executing the click handler, we don't always pick up the newly added handler (see webkit.org/b/202766).
Modify the test so that it passes consistently (and still preserve the dynamic behavior).

  • fast/events/touch/ios/double-tap-for-double-click2.html:
4:31 PM Changeset in webkit [250941] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.1.3

Tag Safari-608.3.10.1.3.

4:03 PM Changeset in webkit [250940] by jiewen_tan@apple.com
  • 72 edits
    2 adds
    1 delete in trunk

[WebAuthn] Move the mock testing entrance to Internals
https://bugs.webkit.org/show_bug.cgi?id=202560
<rdar://problem/55973793>

Reviewed by Chris Dumez.

Source/WebCore:

This patch moves TestRunner.setWebAuthenticationMockConfiguration to
Internals.setMockWebAuthenticationConfiguration and removes the old
entrance. The purpose of this patch is to allow API tests to use
the same mock infrastructure that is used by layout tests.

No new tests, covered by updates on existing tests.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ChromeClient.h:

(WebCore::ChromeClient::setMockWebAuthenticationConfiguration):

  • testing/Internals.cpp:

(WebCore::Internals::setMockWebAuthenticationConfiguration):

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

(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::decode):
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::decode):
(WebCore::MockWebAuthenticationConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::decode):

  • testing/MockWebAuthenticationConfiguration.idl: Added.

Source/WebKit:

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): Deleted.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebAuthentication/AuthenticatorTransportService.cpp:

(WebKit::AuthenticatorTransportService::createMock):

  • UIProcess/WebAuthentication/AuthenticatorTransportService.h:
  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::MockAuthenticatorManager):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::send):
(WebKit::MockHidConnection::registerDataReceivedCallbackInternal):
(WebKit::MockHidConnection::parseRequest):
(WebKit::MockHidConnection::feedReports):
(WebKit::MockHidConnection::shouldContinueFeedReports):

  • UIProcess/WebAuthentication/Mock/MockHidConnection.h:
  • UIProcess/WebAuthentication/Mock/MockHidService.cpp:

(WebKit::MockHidService::MockHidService):

  • UIProcess/WebAuthentication/Mock/MockHidService.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::MockLocalConnection):

  • UIProcess/WebAuthentication/Mock/MockLocalService.h:
  • UIProcess/WebAuthentication/Mock/MockLocalService.mm:

(WebKit::MockLocalService::MockLocalService):

  • UIProcess/WebAuthentication/Mock/MockNfcService.h:
  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

(WebKit::MockNfcService::MockNfcService):
(WebKit::MockNfcService::platformStartDiscovery):
(WebKit::MockNfcService::detectTags const):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: Removed.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMockWebAuthenticationConfiguration):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockWebAuthenticationConfiguration):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setWebAuthenticationMockConfiguration): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/wpt/webauthn/ctap-hid-failure.https.html:
  • http/wpt/webauthn/ctap-hid-success.https.html:
  • http/wpt/webauthn/ctap-nfc-failure.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:
  • http/wpt/webauthn/resources/public-key-credential-ip-address.https.html:
3:48 PM Changeset in webkit [250939] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Clean up WheelEventTestTriggers logging
https://bugs.webkit.org/show_bug.cgi?id=202764

Reviewed by Tim Horton.

Make DeferTestTriggerReason a bit set, and use OptionSet<> rather than StdSet. Make
DeferTestTriggerReason and ScrollableAreaReasonMap loggable, and simplify the logging.

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::clearAllTestDeferrals):
(WebCore::WheelEventTestTrigger::deferTestsForReason):
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason):
(WebCore::WheelEventTestTrigger::triggerTestTimerFired):
(WebCore::operator<<):
(WebCore::dumpState): Deleted.

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

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::deferTestsForReason const):
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason const):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::deferTestsForReason const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::removeTestDeferralForReason const):

3:46 PM Changeset in webkit [250938] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Layout test fast/events/touch/ios/passive-by-default-overridden-on-document-and-window.html is a flaky failure on Internal iOS testers
https://bugs.webkit.org/show_bug.cgi?id=202770
<rdar://51715312>

Reviewed by Megan Gardner.

Remove the touchmove listeners after firing once, because we can't
tell exactly how many we'll get for a drag.

  • fast/events/touch/ios/passive-by-default-overridden-on-document-and-window.html:
3:38 PM Changeset in webkit [250937] by sihui_liu@apple.com
  • 8 edits in trunk/Source/WebCore

IndexedDB: update size to actual disk usage only when estimated increase is bigger than space available
https://bugs.webkit.org/show_bug.cgi?id=201957

Reviewed by Youenn Fablet.

For better performance.

Covered by existing tests.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::QuotaUser::resetSpaceUsed): m_estimatedSpaceIncrease will be updated when task
is finished, so no need to clear it when doing reset.
(WebCore::IDBServer::IDBServer::QuotaUser::computeSpaceUsed):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: instead of reading file size after each task, just add the

task size to known usage and get an estimated usage.
(WebCore::IDBServer::UniqueIDBDatabase::startSpaceIncreaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::finishSpaceIncreaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::generateUniqueCallbackIdentifier):
(WebCore::IDBServer::UniqueIDBDatabase::storeCallbackOrFireError):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStoreAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStoreAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndexAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndexAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAddAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::performErrorCallback):
(WebCore::IDBServer::UniqueIDBDatabase::performKeyDataCallback):
(WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback):
(WebCore::IDBServer::generateUniqueCallbackIdentifier): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::updateSpaceUsedIfNeeded): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • storage/StorageQuotaManager.cpp: use m_state to decide what action to take on next request. Previously when a

request asked for size bigger than space available, we would go to ask for more space directly. Now because IDB
can be reporting estimated usage, we first ask IDB to compute its actual disk usage and ask for more space if
actual space available is smaller than requested size.
(WebCore::StorageQuotaManager::askUserToInitialize):
(WebCore::StorageQuotaManager::removeUser):
(WebCore::StorageQuotaManager::requestSpace):
(WebCore::StorageQuotaManager::askForMoreSpace):
(WebCore::StorageQuotaManager::processPendingRequests):

  • storage/StorageQuotaManager.h:
  • storage/StorageQuotaUser.h:

(WebCore::StorageQuotaUser::computeSpaceUsed):

3:20 PM Changeset in webkit [250936] by sihui_liu@apple.com
  • 6 edits
    3 adds in trunk

IndexedDB: include size of index records in size estimate of put/add task
https://bugs.webkit.org/show_bug.cgi?id=202483

Reviewed by Geoffrey Garen.

Source/WebCore:

SQLiteIDBBackingStore has two tables IndexRecords and Records. For add operation add(VALUE, KEY), we add a new
record to Records table. If we can extract index value from VALUE for some index, we would add a new record to
IndexRecords table.

We estimated the task szie of add task with (KEY_SIZE + VALUE_SIZE), but we didn't count the size that could be
added to the IndexRecords table. This could lead to storage abuse.

Test: storage/indexeddb/request-size-estimate.html

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • storage/indexeddb/request-size-estimate-expected.txt: Added.
  • storage/indexeddb/request-size-estimate.html: Added.
  • storage/indexeddb/resources/request-size-estimate.js: Added.

(randomKey):
(randomPropertyValue):
(createObject):
(prepareDatabase):
(onOpenSuccess):

3:03 PM Changeset in webkit [250935] by Chris Dumez
  • 5 edits
    2 adds in trunk

Youtube.com is unable to enter the back/forward cache on macOS
https://bugs.webkit.org/show_bug.cgi?id=202754
<rdar://problem/56117666>

Reviewed by Eric Carlson.

Source/WebCore:

As of r250542, the MainThreadGenericEventQueue used by both MediaSource and
SourceBuffer to fire event is PageCache-aware. As a result, both these
ActiveDOMObjects can now safety suspend without risking running script while
in the page cache. I did have to update some logic in MediaSource::removeSourceBuffer()
to make sure we do not unnecessarily construct new ActiveDOMObjects while
suspending, as this is not allowed.

Test: media/media-source/media-source-page-cache.html

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::canSuspendForDocumentSuspension const):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::canSuspendForDocumentSuspension const):

  • Modules/mediasource/SourceBuffer.h:

LayoutTests:

Add layout test coverage.

  • media/media-source/media-source-page-cache-expected.txt: Added.
  • media/media-source/media-source-page-cache.html: Added.
2:29 PM Changeset in webkit [250934] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] IPC::decode should gracefully handle a nil allowed class
https://bugs.webkit.org/show_bug.cgi?id=202753

Reviewed by Geoffrey Garen.

If IPC::decode is called with a nil allowed class, an NSInvalidArgumentException will be
thrown when trying to create an NSArray literal with a nil value. Depending on who calls
IPC::decode, this exception might or might not be caught, leading to dropped messages or
crashes.

One case of this happening is tracked by rdar://problem/55839467. In this case, the nil
allowed class was due to a build misconfiguration, and the exception caused the UI process
to not respond to a synchronous IPC message, hanging the WebContent process.

rdar://problem/55839467 was resolved by fixing the build misconfiguration, but this patch
improves IPC::decode so that a nil allowed class results in a message decoding failure
rather than a maybe-caught NSException.

  • Shared/Cocoa/ArgumentCodersCocoa.h:

(IPC::decode):

2:27 PM Changeset in webkit [250933] by Alan Coon
  • 11 edits
    1 delete in tags/Safari-609.1.6

Revert r250878. rdar://problem/56127001

2:23 PM Changeset in webkit [250932] by ysuzuki@apple.com
  • 11 edits
    1 delete in trunk

Unreviewed, roll out r250878
https://bugs.webkit.org/show_bug.cgi?id=202656

Breaking vimeo page.

JSTests:

  • stress/getter-setter-should-be-cell.js: Removed.

Source/JavaScriptCore:

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:
  • runtime/GetterSetter.cpp:
  • runtime/GetterSetter.h:
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpProtoGlobalGetter const):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter const):
(JSC::JSGlobalObject::getterSetterStructure const):

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

(JSC::VM::VM):

  • runtime/VM.h:
2:06 PM Changeset in webkit [250931] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Mark crypto/workers/subtle/aes-indexeddb.html as a timeout on Mojave Release wk2
https://bugs.webkit.org/show_bug.cgi?id=202500

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:02 PM Changeset in webkit [250930] by dbates@webkit.org
  • 6 edits
    1 add in trunk

Add support for CompactPointerTuple<..., OptionSet<...>>
https://bugs.webkit.org/show_bug.cgi?id=201316

Reviewed by Yusuke Suzuki.

Source/WebCore:

Use the new CompactPointerTuple capability to replace CompactPointerTuple<RenderObject*, uint8_t>
with CompactPointerTuple<RenderObject*, OptionSet<ElementStyleFlag>> in Node.h.

  • dom/Node.h:

(WebCore::Node::hasStyleFlag const):
(WebCore::Node::setStyleFlag):
(WebCore::Node::clearStyleFlags):
Update code now that we support CompactPointerTuple<..., OptionSet<...>>.

Source/WTF:

Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
to see the set flags in such a CompactPointerTuple.

  • wtf/CompactPointerTuple.h:

Tools:

Add a test to ensure we encode and decode a compact pointer tuple correctly when an uint8_t and
a OptionSet<> as the byte value portion of the tuple.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/CompactPointerTuple.cpp: Added.

(TestWebKitAPI::TEST):

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

RunResolver::rangeForRendererWithOffsets should check for range end
https://bugs.webkit.org/show_bug.cgi?id=202761
<rdar://problem/55917924>

Reviewed by Antti Koivisto.

Source/WebCore:

This patch ensures that when rangeForRenderer comes back with a collapsed run (empty range), rangeForRendererWithOffsets returns an empty range as well.

Test: fast/text/simple-line-layout-range-check-end.html

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets const):

LayoutTests:

  • fast/text/simple-line-layout-range-check-end-expected.txt: Added.
  • fast/text/simple-line-layout-range-check-end.html: Added.
1:38 PM Changeset in webkit [250928] by Alan Coon
  • 12 edits in tags/Safari-609.1.6

Partially undo r250811
https://bugs.webkit.org/show_bug.cgi?id=202715
<rdar://problem/56084287>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the SerializedScriptValue to always wrap CryptoKey objects again.
CryptoKey objects could belong to an array or another object. In those cases, IDBObjectStore
cannot set the flag for the embedded Cryptokey objects. Neither can postMessage to unset
the flag. Therefore, there is no way to separate the serialization process into two and
this patch restores the old behaviour. However, the hardening part of r250811 is kept
and therefore the crash should still be prevented.

No new test, updated existing test

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::putOrAdd):
(WebCore::JSC::setIsWrappingRequiredForCryptoKey): Deleted.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::readTerminal):

  • crypto/CryptoKey.h:

(WebCore::CryptoKey::allows const):
(WebCore::CryptoKey::isWrappingRequired const): Deleted.
(WebCore::CryptoKey::setIsWrappingRequired): Deleted.
(): Deleted.

  • dom/ScriptExecutionContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html:

Modified to crash if SerializedScriptValue doesn't wrap CryptoKey objects.

LayoutTests:

Some rebaselines.

  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
1:21 PM Changeset in webkit [250927] by Alan Coon
  • 1 copy in tags/Safari-609.1.6

Tag Safari-609.1.6.

1:12 PM Changeset in webkit [250926] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS] Layout Test fast/events/touch/ios/touchstart-and-touchend-outside-touchmove-target.html is Timing Out
https://bugs.webkit.org/show_bug.cgi?id=202759
<rdar://problem/56122388>

Patch by Antoine Quint <Antoine Quint> on 2019-10-09
Reviewed by Dean Jackson.

This test would be run after fast/events/touch/ios/touchmove-cancelable-after-touchstart.html which does not
cleanly finish its simulated touch gesture with a touchend. Now that it does both tests can run one after the
other reliably.

  • fast/events/touch/ios/touchmove-cancelable-after-touchstart.html:
1:01 PM Changeset in webkit [250925] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.0.2

Tag Safari-608.3.10.0.2.

12:57 PM Changeset in webkit [250924] by Jonathan Bedard
  • 6 edits in trunk/Tools

results.webkit.org: Increase default limit for test results
https://bugs.webkit.org/show_bug.cgi?id=202757

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/controller/suite_controller.py:

(SuiteController): Increase DEFAULT_LIMIT.

  • resultsdbpy/resultsdbpy/controller/test_controller.py:

(TestController): Ditto.

  • resultsdbpy/resultsdbpy/view/static/js/commit.js:

(_CommitBank.prototype._load): Make commit shards larger.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Increase default slider size.
  • resultsdbpy/resultsdbpy/view/templates/commits.html: Keep smaller slider size.
12:41 PM Changeset in webkit [250923] by Alan Coon
  • 7 edits in branches/safari-608.3.10.0-branch/Source

Versioning.

12:40 PM Changeset in webkit [250922] by aboya@igalia.com
  • 6 edits
    11 adds in trunk

[MSE][GStreamer] Fix video sometimes not appearing
https://bugs.webkit.org/show_bug.cgi?id=201401

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Added a test that reproduces the sequence of operations that was
causing the video to not appear in WebKitGTK and checks that this time
there is visible output.

  • web-platform-tests/lint.whitelist:
  • web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
  • web-platform-tests/media-source/mediasource-video-is-visible.html: Added.
  • web-platform-tests/media-source/mp4/test-a-1s.mp4: Added.
  • web-platform-tests/media-source/mp4/test-a-1s.mp4-manifest.json: Added.
  • web-platform-tests/media-source/mp4/test-v-1s-blue.mp4: Added.
  • web-platform-tests/media-source/mp4/test-v-1s-blue.mp4-manifest.json: Added.
  • web-platform-tests/media-source/webm/test-a-1s.webm: Added.
  • web-platform-tests/media-source/webm/test-a-1s.webm-manifest.json: Added.
  • web-platform-tests/media-source/webm/test-v-1s-blue.webm: Added.
  • web-platform-tests/media-source/webm/test-v-1s-blue.webm-manifest.json: Added.

Source/WebCore:

The code in MediaPlayerPrivateGStreamer::changePipelineState() was
supposed to call ensureGLVideoSinkContext() on upwards transitions
to PAUSED but the code did not take into account non-step-by-step
state transitions, which happens frequently with playbin3 in the MSE
case.

Before the patch, when playbin3 transitioned from READY to PLAYING
without stopping for preroll this call would not be made and the
texture IDs received at the sink would not correspond to the
compositor GL context, leading to artifacts (often the player controls
or a blank screen).

Test: imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):

LayoutTests:

Added an exact expectation picture to avoid errors in the test runner
(only a fuzzy match is expected, and different platforms render video
with slightly different colors).

  • platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
  • platform/mac/TestExpectations:
12:27 PM Changeset in webkit [250921] by dino@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r250755): fast/events/ios/ipad/fast-click-not-always.html is Failing
https://bugs.webkit.org/show_bug.cgi?id=202760
<rdar://56079585>

Reviewed by Antoine Quint.

Update the preference name.

  • fast/events/ios/ipad/fast-click-not-always.html:
12:23 PM Changeset in webkit [250920] by aboya@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed minor WinCairo test gardening
https://bugs.webkit.org/show_bug.cgi?id=187762

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
11:40 AM Changeset in webkit [250919] by dino@apple.com
  • 2 edits in trunk/Tools

Provide an alternate command-line flag for timeout in run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=202758
<rdar://problem/56124032>

Reviewed by Tim Horton.

I always get the flag "--time-out-ms" wrong.
Everywhere else we use the single-word version of "timeout", including
the documentation for --time-out-ms!

Add an alternate that is just "--timeout", and update the documentation
to mention it is measured in milliseconds.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

11:10 AM Changeset in webkit [250918] by eric.carlson@apple.com
  • 6 edits in trunk

[ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196400
<rdar://problem/49567579>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, this fixes a broken test.

  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::reconfigure): Reconfigure buffers as well.
(WebCore::MockRealtimeAudioSourceMac::render): Call reconfigure if the buffer isn't
configured correctly.
(WebCore::MockRealtimeAudioSourceMac::settingsDidChange): Call reconfigure.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Set sample rate to default.

LayoutTests:

  • fast/mediastream/MediaStreamTrack-getSettings.html: Cleanup test.
  • platform/mac-wk2/TestExpectations: Unskip test.
10:29 AM Changeset in webkit [250917] by dino@apple.com
  • 4 edits in trunk/LayoutTests

Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing since ANGLE roll
https://bugs.webkit.org/show_bug.cgi?id=201784
<rdar://problem/55358159>

Reviewed by Antoine Quint.

This test needed updating.

  • platform/ios/TestExpectations:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html:
10:26 AM Changeset in webkit [250916] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address Darin's post-landing comments for r250912.

The array should be const.

  • css/CSSDefaultStyleSheets.cpp:
10:24 AM Changeset in webkit [250915] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up: Remove pre-macOS Sierra workaround for missing kVK_RightCommand
https://bugs.webkit.org/show_bug.cgi?id=202597

Reviewed by Anders Carlsson.

kVK_RightCommand has been defined in HIToolbox/Events.h since macOS Sierra. We no longer
need to maintain code to manually define it.

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::keyForKeyEvent):

9:45 AM Changeset in webkit [250914] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[CSS Shadow Parts] Minor exportparts attribute parsing cleanups
https://bugs.webkit.org/show_bug.cgi?id=202740

Reviewed by Zalan Bujtas.

  • dom/ShadowRoot.cpp:

(WebCore::parsePartMapping):
(WebCore::parsePartMappingsList):

Return the map as the return value.

(WebCore::ShadowRoot::partMappings const):

9:29 AM Changeset in webkit [250913] by aestes@apple.com
  • 4 edits in trunk/Source

[iOS] Remove redundant uses of USE(UIKIT_EDITING)
https://bugs.webkit.org/show_bug.cgi?id=202717

Reviewed by Anders Carlsson.

Source/WebCore:

  • page/ios/FrameIOS.mm:

(WebCore::Frame::qualifyingNodeAtViewportLocation):
(WebCore::Frame::approximateNodeAtViewportLocationLegacy):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebVisiblePosition.mm:

(-[DOMNode startPosition]):
(-[DOMNode endPosition]):

7:38 AM Changeset in webkit [250912] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[iOS] REGRESSION (r250398) Layout Test fast/history/page-cache-element-state-focused.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202712
<rdar://problem/56082428>

Reviewed by Antti Koivisto.

The test was failing depending on the order in which the tests were executed. The reason is that
elements would either use the full UA stylesheet (html.css) or the simple one in CSSDefaultStyleSheets.cpp.
Unfortunately, the outline-width was different on iOS between the simple stylesheet and the full one, causing
the test output to look different depending on which stylesheet was used.

Address the issue by making sure that the outline-width is 3px on IOS_FAMILY in the simple stylesheet, to
be consistent with the value in the full stylesheet (html.css).

  • css/CSSDefaultStyleSheets.cpp:
7:23 AM Changeset in webkit [250911] by aboya@igalia.com
  • 6 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=202751

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Added.
  • platform/gtk/accessibility/roles-exposed-expected.txt:
  • platform/gtk/fast/tokenizer/script_extra_close-expected.txt:
  • platform/wpe/TestExpectations:
7:07 AM Changeset in webkit [250910] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Painting] Decouple content and decoration painting
https://bugs.webkit.org/show_bug.cgi?id=202718
<rdar://problem/56104661>

Reviewed by Antti Koivisto.

This patch adds support for individual run painting <div><span style="background-color: red">red</span>black</div>.
This is pretty much all we can do with the current data structures (lack of context).

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintBoxDecoration):
(WebCore::Display::paintInlineContent):
(WebCore::Display::Painter::paint):
(WebCore::Display::paintBlockLevelBoxDecoration): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineContainerStart):
(WebCore::Layout::Line::appendInlineContainerEnd):

4:33 AM Changeset in webkit [250909] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for non-unified builds.

  • dfg/DFGByteCodeParser.cpp: Add missing inclusion of the GetterSetter.h header.
3:25 AM Changeset in webkit [250908] by magomez@igalia.com
  • 5 edits in trunk/LayoutTests

Unreviewed WPE gardening after r250889.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
2:41 AM Changeset in webkit [250907] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[Win] error LNK2019: unresolved external symbol "public: cdecl JSC::Strong<enum JSC::Unknown>::Strong<enum JSC::Unknown>(class JSC::VM &,class JSC::JSValue)"
https://bugs.webkit.org/show_bug.cgi?id=202722

Unreviewed flaky build fix for Windows ports.

JSC::Strong is used without including "StrongInlines.h".

  • runtime/JSCInlines.h: Added #include "StrongInlines.h".
2:37 AM Changeset in webkit [250906] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for Windows ports
https://bugs.webkit.org/show_bug.cgi?id=202630
<rdar://problem/56107907>

dom/Document.cpp(3990): error C2653: 'MediaStreamTrack': is not a class or namespace name
dom/Document.cpp(3990): error C3861: 'captureState': identifier not found

  • dom/Document.cpp:

(WebCore::Document::updateIsPlayingMedia): Restored #if ENABLE(MEDIA_STREAM).

2:12 AM Changeset in webkit [250905] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[CSS Shadow Parts] Mark as supported in features.json
https://bugs.webkit.org/show_bug.cgi?id=202730

Reviewed Ryosuke Niwa.

  • features.json:
1:48 AM Changeset in webkit [250904] by youenn@apple.com
  • 10 edits
    2 deletes in trunk

Remove testRunner.setWebRTCUnifiedPlanEnabled
https://bugs.webkit.org/show_bug.cgi?id=202700

Reviewed by Eric Carlson.

Source/WebKit:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Remove legacy tests and migrate simulcast test to unified plan.

  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
  • platform/gtk/TestExpectations:
  • webrtc/simulcast-h264.html:
  • webrtc/video-addLegacyTransceiver.html: Removed.
  • webrtc/video-with-receiver.html: Removed.
1:45 AM Changeset in webkit [250903] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Wayland: do not use EGL_PLATFORM_WAYLAND_KHR with eglGetPlatformDisplayEXT
https://bugs.webkit.org/show_bug.cgi?id=202689

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-10-09
Reviewed by Žan Doberšek.

Use EGL_PLATFORM_WAYLAND_EXT instead. It shouldn't really matter because both are the same value.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::initialize):

1:25 AM Changeset in webkit [250902] by Antti Koivisto
  • 6 edits in trunk

[CSS Shadow Parts] Allow exporting single part with multiple names using exportparts attribute
https://bugs.webkit.org/show_bug.cgi?id=202719

Reviewed by Ryosuke Niwa.

Source/WebCore:

Cases like exportparts="part:export1, part:export2" should work.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

Allow one part name to expand into multiple names for matching.

  • dom/ShadowRoot.cpp:

(WebCore::parsePartMappingsList):

Allow multiple names per mapping.

(WebCore::ShadowRoot::partMappings const):

  • dom/ShadowRoot.h:

LayoutTests:

  • fast/css/shadow-parts/exportparts-syntax-expected.txt:
1:20 AM WebKitGTK/2.26.x edited by Philippe Normand
(diff)
1:17 AM Changeset in webkit [250901] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

REGRESSION(r246399): [GStreamer] Problems playing AAC streams
https://bugs.webkit.org/show_bug.cgi?id=202204

Reviewed by Xabier Rodriguez-Calvar.

Push the EOS event in the WebKitWebSrc element when the internal
queue is empty only for non-live resources. In the live case the
queue might drain temporarily but that's OK because data would
still be queued in downstream elements.

No new tests, the EOS event was pushed too early because of this
regression but there's no way to differentiate it from an expected
event in a layout test.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate):

12:48 AM Changeset in webkit [250900] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

MediaStreamTrack does not need to be a Document audio producer
https://bugs.webkit.org/show_bug.cgi?id=202630

Reviewed by Eric Carlson.

Instead of having all tracks being MediaProducer, we can use the new methods introduced for iOS
to mute/unmute capture tracks and get capture media state.
This allows to not register tracks that are not capture tracks.
Covered by existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::setMuted):
(WebCore::MediaStreamTrack::applyConstraints):
(WebCore::MediaStreamTrack::mediaState const):
(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
(WebCore::MediaStreamTrack::pageMutedStateDidChange): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::updateIsPlayingMedia):
(WebCore::Document::pageMutedStateDidChange):

12:42 AM Changeset in webkit [250899] by Carlos Garcia Campos
  • 6 edits in trunk

REGRESSION(r250597): [GTK][WPE] 2.27.1 shows HTML content as text/plain in custom protocols when passing a charset in content type
https://bugs.webkit.org/show_bug.cgi?id=202633

Reviewed by Žan Doberšek.

Source/WebKit:

This is a regression of the switch to use the new custom protocols implementation. Before r250597, we extracted
the mime type and charset from content type in the network process, but we are now sending the response directly
from the UI process, so we need to do that when building our response. Rename the mime_type parameter as
content_type to avoid confusion, since it's documented as the content type.

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):
(webkit_uri_scheme_request_finish):

  • UIProcess/API/gtk/WebKitURISchemeRequest.h:
  • UIProcess/API/wpe/WebKitURISchemeRequest.h:

Tools:

Add a test case.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextURIScheme):

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

[GTK][WPE] about:gpu should also show the client EGL extensions
https://bugs.webkit.org/show_bug.cgi?id=202690

Reviewed by Carlos Alberto Lopez Perez.

We are showing the extensions supported by the display.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

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

CustomProtocols: convert log messages in WebURLSchemeTaskProxy to RELEASE_LOG
https://bugs.webkit.org/show_bug.cgi?id=202686

Reviewed by Alex Christensen.

Instead of using WTFLogAlways, since those messages are confusing on stdout.

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

(WebKit::WebURLSchemeTaskProxy::didPerformRedirection):
(WebKit::WebURLSchemeTaskProxy::didReceiveResponse):
(WebKit::WebURLSchemeTaskProxy::didReceiveData):

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

[WPE][GTK] WebKitSecurityManager should consider webkit:// to be a local URI scheme
https://bugs.webkit.org/show_bug.cgi?id=202638

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::WebKitProtocolHandler):

12:17 AM Changeset in webkit [250895] by Alan Coon
  • 12 edits in branches/safari-608.3.10.0-branch

Cherry-pick r250887. rdar://problem/56105002

Partially undo r250811
https://bugs.webkit.org/show_bug.cgi?id=202715
<rdar://problem/56084287>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the SerializedScriptValue to always wrap CryptoKey objects again.
CryptoKey objects could belong to an array or another object. In those cases, IDBObjectStore
cannot set the flag for the embedded Cryptokey objects. Neither can postMessage to unset
the flag. Therefore, there is no way to separate the serialization process into two and
this patch restores the old behaviour. However, the hardening part of r250811 is kept
and therefore the crash should still be prevented.

No new test, updated existing test

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::putOrAdd): (WebCore::JSC::setIsWrappingRequiredForCryptoKey): Deleted.
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::allows const): (WebCore::CryptoKey::isWrappingRequired const): Deleted. (WebCore::CryptoKey::setIsWrappingRequired): Deleted. (): Deleted.
  • dom/ScriptExecutionContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html: Modified to crash if SerializedScriptValue doesn't wrap CryptoKey objects.

LayoutTests:

Some rebaselines.

  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:

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

12:17 AM Changeset in webkit [250894] by Alan Coon
  • 3 edits in branches/safari-608.3.10.0-branch/LayoutTests

Cherry-pick r250844. rdar://problem/56061124

Unreviewed, test gardening

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

12:16 AM Changeset in webkit [250893] by Alan Coon
  • 23 edits
    3 adds in branches/safari-608.3.10.0-branch

Cherry-pick r250811. rdar://problem/56061124

Only wrapping CryptoKeys for IDB during serialization
https://bugs.webkit.org/show_bug.cgi?id=202500
<rdar://problem/52445927>

Reviewed by Chris Dumez.

Source/WebCore:

Wrapping CryptoKeys during IDB serialization is a legacy request from Netflix when WebKit was an
early adopter. It is not necessary for other kinds of serialization. However, given existing keys
stored in users' idb are wrapped, the wrapping/unwrapping mechanism cannot be easily discarded.
Therefore, this patch restricts the wrapping/unwrapping mechanism to idb only.

To do so, a isWrappingRequired flag is added to CryptoKey such that whenever idb sees a CryptoKey,
it can set it. SerializedScriptValue will then only wrap a CryptoKey when this flag is set. Otherwise,
a new tag UnwrappedCryptoKeyTag is used to store unwrapped CryptoKeys in order to keep the old CryptoKeyTag
binaries intact. For deserialization, each type will be deserialized differently.

Besides the above, this patch also hardens WorkerGlobalScope::wrapCryptoKey/unwrapCryptoKey for
any potential racy issues. CryptoBooleanContainer is introduced to capture boolean in the lambda.
workerGlobalScope is replaced with workerMessagingProxy. Now, every variables captured in the lambdas
should be either a copy or a thread safe ref of the original object.

Test: crypto/workers/subtle/aes-indexeddb.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::JSC::setIsWrappingRequiredForCryptoKey): (WebCore::IDBObjectStore::putOrAdd):
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::isWrappingRequired const): (WebCore::CryptoKey::setIsWrappingRequired):
  • dom/ScriptExecutionContext.h:
  • workers/WorkerGlobalScope.cpp: (WebCore::CryptoBooleanContainer::create): (WebCore::CryptoBooleanContainer::boolean const): (WebCore::CryptoBooleanContainer::setBoolean): (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey):
  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h: (WebCore::WorkerLoaderProxy::isWorkerMessagingProxy const):
  • workers/WorkerMessagingProxy.h: (isType):

Tools:

Modifies IndexedDB.StructuredCloneBackwardCompatibility test to include CryptoKeys.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: (-[StructuredCloneBackwardCompatibilityNavigationDelegate _webCryptoMasterKeyForWebView:]): (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html:

LayoutTests:

Adds a new test aes-indexeddb.html to do idb in workers and makes
other tests more deterministic.

  • crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
  • crypto/workers/subtle/aes-indexeddb.html: Added.
  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/ec-postMessage-worker.html:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker.html:
  • crypto/workers/subtle/resources/aes-indexeddb.js: Added.
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker.html:

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

12:01 AM Changeset in webkit [250892] by Alan Coon
  • 12 edits in branches/safari-608.3.10.1-branch

Cherry-pick r250887. rdar://problem/56104999

Partially undo r250811
https://bugs.webkit.org/show_bug.cgi?id=202715
<rdar://problem/56084287>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the SerializedScriptValue to always wrap CryptoKey objects again.
CryptoKey objects could belong to an array or another object. In those cases, IDBObjectStore
cannot set the flag for the embedded Cryptokey objects. Neither can postMessage to unset
the flag. Therefore, there is no way to separate the serialization process into two and
this patch restores the old behaviour. However, the hardening part of r250811 is kept
and therefore the crash should still be prevented.

No new test, updated existing test

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::putOrAdd): (WebCore::JSC::setIsWrappingRequiredForCryptoKey): Deleted.
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::allows const): (WebCore::CryptoKey::isWrappingRequired const): Deleted. (WebCore::CryptoKey::setIsWrappingRequired): Deleted. (): Deleted.
  • dom/ScriptExecutionContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html: Modified to crash if SerializedScriptValue doesn't wrap CryptoKey objects.

LayoutTests:

Some rebaselines.

  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:

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

12:01 AM Changeset in webkit [250891] by Alan Coon
  • 3 edits in branches/safari-608.3.10.1-branch/LayoutTests

Cherry-pick r250844. rdar://problem/56075033

Unreviewed, test gardening

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

12:01 AM Changeset in webkit [250890] by Alan Coon
  • 23 edits
    3 adds in branches/safari-608.3.10.1-branch

Cherry-pick r250811. rdar://problem/56075033

Only wrapping CryptoKeys for IDB during serialization
https://bugs.webkit.org/show_bug.cgi?id=202500
<rdar://problem/52445927>

Reviewed by Chris Dumez.

Source/WebCore:

Wrapping CryptoKeys during IDB serialization is a legacy request from Netflix when WebKit was an
early adopter. It is not necessary for other kinds of serialization. However, given existing keys
stored in users' idb are wrapped, the wrapping/unwrapping mechanism cannot be easily discarded.
Therefore, this patch restricts the wrapping/unwrapping mechanism to idb only.

To do so, a isWrappingRequired flag is added to CryptoKey such that whenever idb sees a CryptoKey,
it can set it. SerializedScriptValue will then only wrap a CryptoKey when this flag is set. Otherwise,
a new tag UnwrappedCryptoKeyTag is used to store unwrapped CryptoKeys in order to keep the old CryptoKeyTag
binaries intact. For deserialization, each type will be deserialized differently.

Besides the above, this patch also hardens WorkerGlobalScope::wrapCryptoKey/unwrapCryptoKey for
any potential racy issues. CryptoBooleanContainer is introduced to capture boolean in the lambda.
workerGlobalScope is replaced with workerMessagingProxy. Now, every variables captured in the lambdas
should be either a copy or a thread safe ref of the original object.

Test: crypto/workers/subtle/aes-indexeddb.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::JSC::setIsWrappingRequiredForCryptoKey): (WebCore::IDBObjectStore::putOrAdd):
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::isWrappingRequired const): (WebCore::CryptoKey::setIsWrappingRequired):
  • dom/ScriptExecutionContext.h:
  • workers/WorkerGlobalScope.cpp: (WebCore::CryptoBooleanContainer::create): (WebCore::CryptoBooleanContainer::boolean const): (WebCore::CryptoBooleanContainer::setBoolean): (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey):
  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h: (WebCore::WorkerLoaderProxy::isWorkerMessagingProxy const):
  • workers/WorkerMessagingProxy.h: (isType):

Tools:

Modifies IndexedDB.StructuredCloneBackwardCompatibility test to include CryptoKeys.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: (-[StructuredCloneBackwardCompatibilityNavigationDelegate _webCryptoMasterKeyForWebView:]): (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html:

LayoutTests:

Adds a new test aes-indexeddb.html to do idb in workers and makes
other tests more deterministic.

  • crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
  • crypto/workers/subtle/aes-indexeddb.html: Added.
  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/ec-postMessage-worker.html:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker.html:
  • crypto/workers/subtle/resources/aes-indexeddb.js: Added.
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker.html:

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

Oct 8, 2019:

11:39 PM Changeset in webkit [250889] by Antti Koivisto
  • 6 edits in trunk/Source

[CSS Shadow Parts] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=202644

Reviewed by Ryosuke Niwa.

Source/WebCore:

Flip the switch.

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Flip the switch.

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

11:36 PM Changeset in webkit [250888] by Alan Coon
  • 7 edits in branches/safari-608.3.10.1-branch/Source

Versioning.

9:15 PM Changeset in webkit [250887] by jiewen_tan@apple.com
  • 12 edits in trunk

Partially undo r250811
https://bugs.webkit.org/show_bug.cgi?id=202715
<rdar://problem/56084287>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the SerializedScriptValue to always wrap CryptoKey objects again.
CryptoKey objects could belong to an array or another object. In those cases, IDBObjectStore
cannot set the flag for the embedded Cryptokey objects. Neither can postMessage to unset
the flag. Therefore, there is no way to separate the serialization process into two and
this patch restores the old behaviour. However, the hardening part of r250811 is kept
and therefore the crash should still be prevented.

No new test, updated existing test

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::putOrAdd):
(WebCore::JSC::setIsWrappingRequiredForCryptoKey): Deleted.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::readTerminal):

  • crypto/CryptoKey.h:

(WebCore::CryptoKey::allows const):
(WebCore::CryptoKey::isWrappingRequired const): Deleted.
(WebCore::CryptoKey::setIsWrappingRequired): Deleted.
(): Deleted.

  • dom/ScriptExecutionContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html:

Modified to crash if SerializedScriptValue doesn't wrap CryptoKey objects.

LayoutTests:

Some rebaselines.

  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
8:50 PM Changeset in webkit [250886] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] FTL vmCall should check # of arguments
https://bugs.webkit.org/show_bug.cgi?id=202683

Reviewed by Saam Barati.

This patch inserts static_assert for # of arguments when using FTL vmCall.
It turned out that such check is useful when converting ExecState* to JSGlobalObject*.
Like, first, adding JSGlobalObject* parameter, making it compiled and removing ExecState* and m_callFrame parameter later.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
(JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMod):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
(JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
(JSC::FTL::DFG::LowerDFGToB3::compileValuePow):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
(JSC::FTL::DFG::LowerDFGToB3::compileArithSqrt):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFRound):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitXor):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayify):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineDataProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineAccessorProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectCreate):
(JSC::FTL::DFG::LowerDFGToB3::compileNewPromise):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
(JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileSameValue):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::compileThrow):
(JSC::FTL::DFG::LowerDFGToB3::compileThrowStaticError):
(JSC::FTL::DFG::LowerDFGToB3::mapHashString):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileParseInt):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExec):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExecNonGlobalOrSticky):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFastGlobal):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpTest):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFast):
(JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithRadix):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithValidRadixConstant):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
(JSC::FTL::DFG::LowerDFGToB3::vmCall):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::callWithoutSideEffects):

8:31 PM Changeset in webkit [250885] by Justin Fan
  • 3 edits in trunk/LayoutTests

WebGPU tests are skipped on iOS
https://bugs.webkit.org/show_bug.cgi?id=192889

Unreviewed test expectation updates.

Unskip WebGPU tests on iOS devices while skipping on simulator.

  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
7:12 PM Changeset in webkit [250884] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

Make fast/text/complex-initial-advance.html more robust
https://bugs.webkit.org/show_bug.cgi?id=202708
<rdar://problem/49539493>

Reviewed by Tim Horton.

We are hitting floating point precision issues. Fortunately, the part of the text that is
hitting these issues isn't actually necessary for the test.

  • fast/text/complex-initial-advance-expected.html:
  • fast/text/complex-initial-advance.html:
  • platform/mac/TestExpectations:
6:54 PM Changeset in webkit [250883] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, roll out r250848
https://bugs.webkit.org/show_bug.cgi?id=202683

Causing JSTests failures.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
(JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMod):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
(JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
(JSC::FTL::DFG::LowerDFGToB3::compileValuePow):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
(JSC::FTL::DFG::LowerDFGToB3::compileArithSqrt):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFRound):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitXor):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayify):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineDataProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineAccessorProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectCreate):
(JSC::FTL::DFG::LowerDFGToB3::compileNewPromise):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
(JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileSameValue):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::compileThrow):
(JSC::FTL::DFG::LowerDFGToB3::compileThrowStaticError):
(JSC::FTL::DFG::LowerDFGToB3::mapHashString):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileParseInt):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExec):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExecNonGlobalOrSticky):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFastGlobal):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpTest):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFast):
(JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithRadix):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithValidRadixConstant):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
(JSC::FTL::DFG::LowerDFGToB3::vmCall):

6:03 PM Changeset in webkit [250882] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.0.1

Tag Safari-608.3.10.0.1.

6:02 PM Changeset in webkit [250881] by Alan Coon
  • 1 delete in tags/Safari-608.3.10.0.1

Delete tag.

5:52 PM Changeset in webkit [250880] by Alan Coon
  • 6 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Revert "Cherry-pick r250755. rdar://problem/56061130"

This reverts commit r250829.

5:52 PM Changeset in webkit [250879] by Alan Coon
  • 11 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Revert "Cherry-pick r250780. rdar://problem/56061130"

This reverts commit r250830.

5:25 PM Changeset in webkit [250878] by ysuzuki@apple.com
  • 11 edits
    1 add in trunk

[JSC] GetterSetter should be JSCell, not JSObject
https://bugs.webkit.org/show_bug.cgi?id=202656

Reviewed by Tadeu Zagallo and Saam Barati.

JSTests:

  • stress/getter-setter-should-be-cell.js: Added.

(foo.with.):
(foo.with.get for):
(foo.with.bar):
(foo):

Source/JavaScriptCore:

Essentially, GetterSetter is not a JSObject. It is like a JSCell. But we made GetterSetter JSObject
to leverage existing strict-eq implementations for JSObject: pointer-comparison. But given the following
conditions,

  1. GetterSetter strict-eq comparison only happens in builtin code when using @tryGetById.
  2. RHS of that comparison is always folded into constant in DFG.
  3. We already use pointer-comparison for cells that are neither JSString nor JSBigInt.
  4. DFG strength reduction already has a rule which makes CompareStrictEq(Cell-not-JSString/JSBigInt, Constant) ComparePtrEq.

So we already support non-JSString/JSBigInt cell comparison in JSC JS code. We should use it instead of making GetterSetter JSObject.
This patch makes GetterSetter JSCell, and makes getterSetterStructure per-VM structure.

The attached test reported AI validation failure. AI assumed that GetterSetter's realm should be the same to the base object. But
this is incorrect in our runtime code: we are creating GetterSetter with lexical realm (JSGlobalObject). But the fundamental problem
is that GetterSetter is JSObject and tied to JSGlobalObject while it is not necessary.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:
  • runtime/GetterSetter.cpp:
  • runtime/GetterSetter.h:
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpProtoGlobalGetter const):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter const):
(JSC::JSGlobalObject::customGetterSetterFunctionStructure const):
(JSC::JSGlobalObject::getterSetterStructure const): Deleted.

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

(JSC::VM::VM):

  • runtime/VM.h:
4:38 PM Changeset in webkit [250877] by Jonathan Bedard
  • 3 edits in trunk/Tools

REGRESSION (r250375): [old EWS] JSC EWS is always marking Patches as success
https://bugs.webkit.org/show_bug.cgi?id=202419

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/common/system/executive.py:

(Executive._run_command_with_teed_output): Return exit code.

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.test_run_command_with_bad_command): Test that exceptions are raised
For non-zero exit codes.

4:23 PM Changeset in webkit [250876] by aestes@apple.com
  • 19 edits
    2 moves in trunk/Source/WebKit

[iOS] Add a fast path that avoids hit testing during context menu interactions on elements
https://bugs.webkit.org/show_bug.cgi?id=202510
<rdar://problem/55939313>

Reviewed by Tim Horton.

When computing position information for an element, we can store sufficient context
information in InteractionInformationAtPosition such that the same element could be
retrieved again without hit testing. The existing TextInputContext can already store an
element's page identifier, document identifier, and element identifier, which is sufficient
context for such a task.

This patch renames TextInputContext to ElementContext and uses it when populating new
InteractionInformationAtPosition structs in elementPositionInformation(). When a context
menu interaction occurs, WebPage::startInteractionWithElementContextOrPosition() uses this
context to look up the interaction element by its identifier triplet, falling back to hit
testing if this lookup fails.

  • Scripts/webkit/messages.py:
  • Shared/DocumentEditingContext.h:
  • Shared/DocumentEditingContext.mm:

(IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::decode):

  • Shared/ElementContext.cpp: Renamed from Source/WebKit/Shared/TextInputContext.cpp.

(IPC::ArgumentCoder<WebKit::ElementContext>::encode):
(IPC::ArgumentCoder<WebKit::ElementContext>::decode):

  • Shared/ElementContext.h: Renamed from Source/WebKit/Shared/TextInputContext.h.

(WebKit::operator==):

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

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

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):

  • UIProcess/API/Cocoa/_WKTextInputContext.mm:

(-[_WKTextInputContext _initWithTextInputContext:]):
(-[_WKTextInputContext _textInputContext]):

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

(WebKit::WebPageProxy::textInputContextsInRect):
(WebKit::WebPageProxy::focusTextInputContext):

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

(-[WKContentView actionSheetAssistant:willStartInteractionWithElement:]):
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::startInteractionWithPositionInformation):
(WebKit::WebPageProxy::startInteractionWithElementAtPosition): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect):
(WebKit::WebPage::focusTextInputContext):
(WebKit::WebPage::elementForContext const):
(WebKit::WebPage::contextForElement const):
(WebKit::WebPage::elementForTextInputContext): Deleted.

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

(WebKit::elementPositionInformation):
(WebKit::WebPage::startInteractionWithElementContextOrPosition):
(WebKit::WebPage::requestDocumentEditingContext):
(WebKit::WebPage::startInteractionWithElementAtPosition): Deleted.

4:19 PM Changeset in webkit [250875] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.0.1

Tag Safari-608.3.10.0.1.

4:15 PM Changeset in webkit [250874] by Devin Rousso
  • 27 edits
    2 adds in trunk

Web Inspector: Canvas: modifications to shader modules can be shared between vertex/fragment shaders
https://bugs.webkit.org/show_bug.cgi?id=202031

Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:

Create a distinct ShaderProgram type so that additional data can be bundled and sent to
the frontend as part of the programCreated event without having to worry about having too
many arguments.

Source/WebCore:

Test: inspector/canvas/updateShader-webgpu-sharedVertexFragment.html

  • Modules/webgpu/WebGPUPipeline.h:
  • Modules/webgpu/WebGPUComputePipeline.cpp:

(WebCore::WebGPUComputePipeline::cloneShaderModules): Added.
(WebCore::WebGPUComputePipeline::recompile):

  • Modules/webgpu/WebGPURenderPipeline.cpp:

(WebCore::WebGPURenderPipeline::cloneShaderModules): Added.
(WebCore::WebGPURenderPipeline::recompile):
Recreate the vertex/fragment/compute shader module(s) when recompiling so that modifications
to it via this pipeline don't affect other pipelines that also use the same shader module.

  • inspector/InspectorShaderProgram.h:
  • inspector/InspectorShaderProgram.cpp:

(WebCore::InspectorShaderProgram::updateShader):
(WebCore::InspectorShaderProgram::buildObjectForShaderProgram): Added.

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::didCreateWebGLProgram):
(WebCore::InspectorCanvasAgent::didCreateWebGPUPipeline):
Include as part of the Canvas.event.programCreated payload a flag indicating whether the
vertex shader module and fragment shader module are the same for WebGPURenderPipelines.

Source/WebInspectorUI:

If the vertex and fragment shaders share the same source module for a WebGPU shader pipeline,
only display a single editable content view for that shader pipeline in the Canvas Tab.

  • UserInterface/Models/ShaderProgram.js:

(WI.ShaderProgram):
(WI.ShaderProgram.prototype.get sharesVertexFragmentShader): Added.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.programCreated):

  • UserInterface/Protocol/CanvasObserver.js:

(WI.CanvasObserver.prototype.programCreated):

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype.shown):
(WI.ShaderProgramContentView.prototype.hidden):
(WI.ShaderProgramContentView.prototype._refreshContent):

  • UserInterface/Views/ShaderProgramContentView.css:

(.content-view.shader-program > .shader.compute, .content-view.shader-program > .shader.vertex.shares-vertex-fragment-shader): Added.
(body[dir=ltr] .content-view.shader-program > .shader.vertex:not(.shares-vertex-fragment-shader), body[dir=rtl] .content-view.shader-program > .shader.fragment): Added.
(body[dir=ltr] .content-view.shader-program > .shader.fragment, body[dir=rtl] .content-view.shader-program > .shader.vertex:not(.shares-vertex-fragment-shader)): Added.
(.content-view.shader-program > .shader.compute): Deleted.
(body[dir=ltr] .content-view.shader-program > .shader.vertex, body[dir=rtl] .content-view.shader-program > .shader.fragment): Deleted.
(body[dir=ltr] .content-view.shader-program > .shader.fragment, body[dir=rtl] .content-view.shader-program > .shader.vertex): Deleted.

  • UserInterface/Views/CodeMirrorAdditions.js:

Replace the vertex/fragment specific MIME types with a more general "render" MIME type.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/canvas/updateShader-webgpu-sharedVertexFragment.html: Added.
  • inspector/canvas/updateShader-webgpu-sharedVertexFragment-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
4:05 PM Changeset in webkit [250873] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.1.2

Tag Safari-608.3.10.1.2.

4:03 PM Changeset in webkit [250872] by yurys@chromium.org
  • 5 edits in trunk/LayoutTests

Web Inspector: inspector/layers/layers-for-node.html and inspector/timeline/line-column.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=202649

Reviewed by Devin Rousso.

Unflake a couple of inspector protocol tests. r250655 replaced Timer-based queue
with RunLoop-based one for inspector message dispatching. The tests apparently relied
on the timing of the message delivery and had been less flaky before. Updated the tests
to wait for explicit signals rather than relying on event timing.

  • inspector/layers/layers-for-node-expected.txt:
  • inspector/layers/layers-for-node.html: Updated the test to wait for the first

LayerTree.layerTreeDidChange event before requesting initial layer tree.

Also after adding a node wait for next RAF to avoid flakiness.

  • inspector/timeline/line-column-expected.txt:
  • inspector/timeline/line-column.html: There a style recalc event

which appears intermittently in the recorded profile making the test
flaky. To avoid that dump only events that are always present.

4:01 PM Changeset in webkit [250871] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.27.1

WPE WebKit 2.27.1

4:00 PM Changeset in webkit [250870] by Adrian Perez de Castro
  • 4 edits in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.27.1
3:30 PM Changeset in webkit [250869] by Jonathan Bedard
  • 5 edits in trunk/Tools

Python 3: Add support to auto-importer
https://bugs.webkit.org/show_bug.cgi?id=201955

Reviewed by Aakash Jain.

  • Scripts/test-webkitpy-python3: Auto-install everything.
  • Scripts/webkitpy/common/system/autoinstall.py: Import urlopen and urlparse for Python3.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Update function definition for Python3.
(AutoinstallImportHook._install_mechanize): Use Python 2/3 compatible version of mechanize.
(AutoinstallImportHook._install_requests): Update urllib3 and requests version.
(AutoinstallImportHook._install_coverage): Use Python 2/3 compatible version of coverage.
(AutoinstallImportHook.greater_than_equal_to_version): Use range instead of xrange.
(AutoinstallImportHook._install_selenium): Update urllib3 version.
(AutoinstallImportHook.install_chromedriver):
(AutoinstallImportHook.install_geckodriver):
(AutoinstallImportHook.get_latest_pypi_url):
(AutoinstallImportHook.install_binary):

  • Scripts/webkitpy/thirdparty/init_unittest.py:

(ThirdpartyTest):
(ThirdpartyTest.test_import_hook): Deleted.

3:19 PM Changeset in webkit [250868] by yurys@chromium.org
  • 2 edits in trunk/Tools

Restore my committer status.

Uneviewed.

  • Scripts/webkitpy/common/config/contributors.json:
3:16 PM Changeset in webkit [250867] by rmorisset@apple.com
  • 2 edits in trunk/Source/WTF

dataLogIf should be ALWAYS_INLINE
https://bugs.webkit.org/show_bug.cgi?id=202703

Reviewed by Saam Barati.

We often have the following pattern:
`
static constexpr bool verbose = false;
...
dataLogLnIf(verbose, "Something is happening");
`
To make sure that these are always properly eliminated I'd like to make dataLogIf/dataLogLnIf ALWAYS_INLINE.

We may as well mark the branch as UNLIKELY too, for the cases where the condition comes from Options::verboseSomething() and is only known at runtime.

  • wtf/DataLog.h:

(WTF::dataLogIf):
(WTF::dataLogLnIf):

3:13 PM Changeset in webkit [250866] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Implement Telemetry and Dumping Routines for SQLite backend (195088)
https://bugs.webkit.org/show_bug.cgi?id=195088
<rdar://problem/54213407>

Patch by Kate Cheney <Kate Cheney> on 2019-10-08
Reviewed by John Wilander.

Source/WebKit:

Implemented database telemetry calculating for ITP. Mimicked
ResourceLoadStatisticsMemoryStore telemetry logging behavior using
SQLite Queries as opposed to vector sorting/manipulation. Once fully
integrated, this will simplify analysis of ITP data by transitioning
ITP data storage from a plist to a SQLite database.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
Added SQL queries to be initialized in the constructor. These queries
are needed to mimic the telemetry calculations done in
ResourceLoadStatisticsMemoryStore.

(WebKit::resetStatement):
To reduce code duplication, this function holds common code to reset
a SQL query.

(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
Added SQL queries needed for telemetry calculations to be prepared.

(WebKit::joinSubStatisticsForSorting):
This function returns the query string for sorting resources that is
shared by many queries.

(WebKit::ResourceLoadStatisticsDatabaseStore::getMedianOfPrevalentResourcesWithUserInteraction const):
Implemented a function to take the median days since user interaction
from all prevalent resources in the database with user interaction
(sorted by max count of subframes, subresources and unique redirects under
the top frame domain).

(WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResources const):
Executes a SQL query to get the number of prevalent resources to log as
telemetry.

(WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResourcesWithUI const):
Executes a SQL query to get the number of prevalent resources with user
interaction to log as telemetry.

(WebKit::ResourceLoadStatisticsDatabaseStore::getTopPrevelentResourceDaysSinceUI const):
Prepares and executes a SQL query to get the days since user
interaction from the top prevalent resource to be recorded as
telemetry data.

(WebKit::ResourceLoadStatisticsDatabaseStore::getMedianStatisticOfPrevalentResourceWithoutUserInteraction const):
Implemented a function which takes a statistic and returns the value
of that statistic for the median prevalent resource without user
interaction to be recorded as telemetry data.

(WebKit::ResourceLoadStatisticsDatabaseStore::getNumberOfPrevalentResourcesInTopResources const):
Returns the count of prevalent resources in the top x resources
sorted by sum of substatistics again to be logged as telemetry.

(WebKit::ResourceLoadStatisticsDatabaseStore::calculateTelemetryData const):
Function which executes all functions which populate the struct with
telemetry data. This struct will then be passed to
WebResourceLoadStatisticsTelemetry to be logged.

(WebKit::ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry const):
Initializes the telemetry struct and calls the function to populate
it, then passes it to the WebResourceLoadStatisticsTelemetry object
to be recorded.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Describe PrevalentResourceDatabaseTelemetry Struct to be passed and
logged as telemetry data.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp:

(WebKit::databaseSubmitTopLists):
Logging telemetry data by looping through 2D array of statistics for
the top 1, 3, 10, 50, and 100 prevalent resources sorted by the sum
of substatistics under the top frame domain. This matches the logging
already done in ResourceLoadStatisticsMemoryStore.

(WebKit::WebResourceLoadStatisticsTelemetry::submitTelemetry):
Submits data to the webPageProxy logs and plists.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h:

Added new submitTopList function to accomodate database telemetry
logging.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::notifyPageStatisticsTelemetryFinished):

  • NetworkProcess/NetworkSession.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::notifyResourceLoadStatisticsTelemetryFinished):

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

Updated the current testing for telemetry which only tested 3
statistics. With this patch it now tests 10 statistics.

Tools:

Updated the current testing for telemetry which only tested 3
statistics. With this patch it now tests 10 statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::statisticsDidRunTelemetryCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Updated the current testing for telemetry which only tested 3
statistics. With this patch it now tests 10 statistics.

  • http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html: Added.
  • http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html: Added.
3:00 PM Changeset in webkit [250865] by Alan Coon
  • 23 edits
    3 deletes in branches/safari-608.3.10.1-branch

Revert "Cherry-pick r250811. rdar://problem/56075033"

This reverts commit r250834.

3:00 PM Changeset in webkit [250864] by Alan Coon
  • 23 edits
    3 deletes in branches/safari-608.3.10.0-branch

Revert "Cherry-pick r250811. rdar://problem/56061124"

This reverts commit r250835.

2:56 PM Changeset in webkit [250863] by timothy@apple.com
  • 4 edits
    1 add in trunk

Copying white text from dark mode WebKit apps and pasting in a light mode app results in white (invisible) text.
https://bugs.webkit.org/show_bug.cgi?id=202662
rdar://problem/48677354

Reviewed by Megan Gardner.

Source/WebCore:

Covered by new API tests.

HTMLConverter needs to strip white text colors when the document is in dark mode, like it does for black in light mode.

  • editing/cocoa/HTMLConverter.mm:

(normalizedColor): Handle dark mode and ignore white.
(HTMLConverterCaches::colorPropertyValueForNode): Pass element to normalizedColor.

Tools:

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

(readRTFDataFromPasteboard):
(copyAttributedStringFromHTML):
(checkColor):
(TEST):

2:53 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
2:40 PM Changeset in webkit [250862] by Antti Koivisto
  • 1 edit
    2 adds in trunk/LayoutTests

[CSS Shadow Parts] Add test for exportparts list syntax
https://bugs.webkit.org/show_bug.cgi?id=202695

Reviewed by Ryosuke Niwa.

The test shows that we don't handle exporting same part under multiple names correctly.

  • fast/css/shadow-parts/exportparts-syntax-expected.txt: Added.
  • fast/css/shadow-parts/exportparts-syntax.html: Added.
2:40 PM Changeset in webkit [250861] by Antti Koivisto
  • 4 edits
    2 adds in trunk

[CSS Shadow Parts] Fix style invalidation with class selector and ::before and ::after
https://bugs.webkit.org/show_bug.cgi?id=202694

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/css/shadow-parts/invalidation-class-before-after.html

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateIfNeeded):
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):

Invalidate in the shadow tree if the computed match element is host.

(WebCore::Style::Invalidator::invalidateInShadowTreeIfNeeded):

Factor into a function.

  • style/StyleInvalidator.h:

LayoutTests:

  • fast/css/shadow-parts/invalidation-class-before-after-expected.txt: Added.
  • fast/css/shadow-parts/invalidation-class-before-after.html: Added.
2:23 PM Changeset in webkit [250860] by commit-queue@webkit.org
  • 4 edits
    6 adds in trunk

JSON.parse incorrectly handles array proxies
https://bugs.webkit.org/show_bug.cgi?id=199292

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-10-08
Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/json-parse-array-reviver-same-value.js: Added.
  • microbenchmarks/json-parse-array-reviver.js: Added.
  • microbenchmarks/json-parse-object-reviver-same-value.js: Added.
  • microbenchmarks/json-parse-object-reviver.js: Added.
  • stress/json-parse-reviver-array-proxy.js: Added.
  • stress/json-parse-reviver-revoked-proxy.js: Added.
  • test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

  1. Use isArray to correctly detect proxied arrays.
  2. Make "length" lookup observable to array proxies and handle exceptions.
  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

2:09 PM Changeset in webkit [250859] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: make it more obvious that the cards in the overview are clickable
https://bugs.webkit.org/show_bug.cgi?id=202680

Reviewed by Matt Baker.

Add a slight darkening (or lightening when in dark mode) of the background behind the
content preview in the overview.

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview .content-view.canvas):
(.content-view.canvas-overview .content-view.canvas, .content-view.canvas-overview .content-view.canvas > .preview > img): Added.
(.content-view.canvas-overview .content-view.canvas.recording-active > .progress-view, .content-view.canvas-overview .content-view.canvas > .preview):
(.content-view.canvas-overview .content-view.canvas.recording-active > .progress-view:hover, .content-view.canvas-overview .content-view.canvas > .preview:hover): Added.
(@media (prefers-color-scheme: dark) .content-view.canvas-overview .content-view.canvas, .content-view.canvas-overview .content-view.canvas > .preview > img): Added.
(@media (prefers-color-scheme: dark) .content-view.canvas-overview .content-view.canvas.recording-active > .progress-view:hover, .content-view.canvas-overview .content-view.canvas > .preview:hover): Added.

1:49 PM Changeset in webkit [250858] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: don't show an empty preview for WebGPU devices
https://bugs.webkit.org/show_bug.cgi?id=202679

Reviewed by Matt Baker.

HTMLCanvasElement.prototype.toDataURL hasn't been hooked up for GPUCanvasContext yet, so
calling Canvas.requestContent with a WebGPUDevice won't give us any good results.

As such, the Web Inspector frontend should show something slightly more actionable, such as
a more generic non-error "No Preview Available" message.

  • UserInterface/Models/Canvas.js:

(WI.Canvas.supportsRequestContentForContextType): Added.
(WI.Canvas.prototype.requestContent):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype._showError):

1:39 PM Changeset in webkit [250857] by Adrian Perez de Castro
  • 17 edits in trunk/Source

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

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • runtime/JSLock.h: Add missing inclusion of wtf/ForbidHeapAllocation.h
  • wasm/WasmSignature.cpp: Add missing inclusions of wtf/CommaPrinter.h and

wtf/StringPrintStream.h (needed by debug builds).

  • wasm/WasmStreamingParser.cpp: Add missing inclusion of WasmSignatureInlines.h to

avoid missing symbols during linking.

Source/WebCore:

No new tests needed.

  • Modules/fetch/FetchLoader.h: Add missing forward declaration of WebCore::SharedBuffer.
  • Modules/indexeddb/shared/IDBGetAllRecordsData.cpp: Add missing inclusion of header

wtf/text/StringConcatenateNumbers.h

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp: Ditto.
  • animation/DocumentTimeline.cpp: Add missing inclusion of the EventNames.h and

JavaScriptCore/VM.h headers.

  • bindings/js/JSDOMWindowCustom.cpp: Add missing inclusion of the JSDOMConvertCallbacks.h

header.

  • bindings/js/JSIDBRequestCustom.cpp: Add missing inclusion of the JSDOMConvertIndexedDB.h

and JSDOMConvertSequences.h headers.

  • bindings/js/JSRemoteDOMWindowCustom.cpp: Add missing inclusion of the

JSDOMExceptionHandling.h header.

  • bindings/js/ScriptController.cpp: Add missing inclusion of the

JavaScriptCore/WeakGCMapInlines.h header to avoid missing symbols during linking.

  • bindings/js/ScriptModuleLoader.h: Add missing inclusion of the wtf/HashSet.h header

and add a forward declaration for the JSC::JSModuleRecord type.

  • bindings/js/WindowProxy.cpp: Add missing inclusion of the JavaScriptCore/StrongInlines.h

header to avoid missing symbols during linking.

  • css/FontFaceSet.cpp: Add missing inclusion of the DOMPromiseProxy.h header.
  • css/FontFaceSet.h: Add missing inclusion of the IDLTypes.h header.
  • dom/IdleDeadline.h: Add missing inclusion of the wtf/Ref.h header.
  • history/CachedPage.h: Add missing inclusion of the wtf/MonotonicTime.h header.
  • html/canvas/WebGLBuffer.h: Add missing inclusion of the wtf/RefPtr.h header.
  • html/canvas/WebGLFramebuffer.h: Add missing inclusion of the wtf/HashMap.h and

wtf/Vector.h headers.

  • html/canvas/WebGLProgram.h: Add missing inclusion of the wtf/HashFunctions.h, wtf/Lock.h,

and wtf/Vector.h headers; add the missing namespace to an usage of WTF::LockHolder.

  • html/canvas/WebGLShader.h: Add missing inclusion of the wtf/text/WTFString.h header.
  • inspector/InspectorController.cpp: Add missing inclusion of the SharedBuffer.h header.
  • inspector/agents/InspectorCanvasAgent.cpp: Add missing inclusion of the ImageBitmap.h

header.

  • page/DOMWindowExtension.cpp: Add missing inclusion of the Document.h header.
  • page/scrolling/nicosia/ScrollingTreeFixedNode.cpp: Add missing inclusion of the

ScrollingTreeFrameScrollingNode.h header.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp: Add missing inclusion

of the Logging.h header.

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp: Add missing

inclusion of the ScrollingTree.h header.

  • page/scrolling/nicosia/ScrollingTreeStickyNode.cpp: Add missing inclusion of the

ScrollingTreeOverflowScrollProxyNode.h header.

  • platform/SuspendableTaskQueue.cpp: Add missing inclusion of the ScriptExecutionContext.h

header.

  • workers/Worker.cpp: Add missing inclusion of the JavaScriptCore/ScriptCallStack.h header.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp: Add missing inclusion of the

Logging.h header.

1:32 PM Changeset in webkit [250856] by Wenson Hsieh
  • 2 edits
    27 adds in trunk/LayoutTests

[Clipboard API] Import web-platform-tests/clipboard-apis
https://bugs.webkit.org/show_bug.cgi?id=202642

Reviewed by Ryosuke Niwa.

Upstream tests and current test expectations from web-platform-tests/clipboard-apis/.

  • resources/import-expectations.json:
  • web-platform-tests/clipboard-apis/META.yml: Added.
  • web-platform-tests/clipboard-apis/async-interfaces.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-interfaces.https.html: Added.
  • web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html: Added.
  • web-platform-tests/clipboard-apis/async-write-dttext-read-dttext-manual.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-write-dttext-read-dttext-manual.https.html: Added.
  • web-platform-tests/clipboard-apis/async-write-dttext-read-text-manual.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-write-dttext-read-text-manual.https.html: Added.
  • web-platform-tests/clipboard-apis/async-write-text-read-dttext-manual.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-write-text-read-dttext-manual.https.html: Added.
  • web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https-expected.txt: Added.
  • web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https.html: Added.
  • web-platform-tests/clipboard-apis/clipboard-events-synthetic-expected.txt: Added.
  • web-platform-tests/clipboard-apis/clipboard-events-synthetic.html: Added.
  • web-platform-tests/clipboard-apis/w3c-import.log: Added.
1:15 PM Changeset in webkit [250855] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: unable to click on overview path component when jumping directly to a shader
https://bugs.webkit.org/show_bug.cgi?id=202682

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView):
The WI.TreeOutline used for the hierarchical path components is actually held by the
Canvas Tab, not the Canvas navigation sidebar panel. As a result, if the hierarchical path
is changed by anything other than the hierarchical path itself (e.g. a selection in the
navigation sidebar, or clicking on the [gl] shader or [o_o] recording buttons in the
overview preview tile), the selection state of the WI.TreeOutline can get out of sync. In
this case, the WI.TreeOutline still thinks that "Overview" is selected because the change
in content view was triggered by something unrelated to the WI.TreeOutline (see above for
specific examples). The simple solution is to just allow repeat selection, as this is only
an issue here because the canvas navigation sidebar isn't always visible, as well as to
allow the "Overview" to be listed as the root path item.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.updateRepresentedObjects):
If a WI.Canvas is one of the current represented objects, attempt to select it, even if
it matches the currently shown WI.Canvas. This covers the situation where the WI.Canvas
is selected via its hierarchical path component, ensuring that the selected item in the
navigation sidebar always matches the hierarchical path components.

1:08 PM Changeset in webkit [250854] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: the navigation sidebar icon isn't inverted in dark mode
https://bugs.webkit.org/show_bug.cgi?id=202681

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasSidebarPanel.css:

(@media (prefers-color-scheme: dark) .sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas .icon): Added.

  • UserInterface/Views/CanvasTabContentView.css:

(@media (prefers-color-scheme: dark) .content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
Drive-by: slightly darken the Canvas Overview hierarchical path component icon so it better

matches the colors of the nearby canvas icons.

12:53 PM Changeset in webkit [250853] by youenn@apple.com
  • 11 edits in trunk

MediaStreamTrack should be a PlatformMediaSessionClient instead of MediaStream
https://bugs.webkit.org/show_bug.cgi?id=202631

Reviewed by Eric Carlson.

Source/WebCore:

Make MediaStreamTrack a PlatformMediaSessionClient, which allows tracking tracks that are not owned by a stream.
MediaStream is no longer a PlatformMediaSessionClient so we move some of MediaStream API implementation to MediaStreamTrack.

Covered by updated test.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::startProducingData):
(WebCore::MediaStream::stopProducingData):
(WebCore::MediaStream::statusDidChange):
(WebCore::MediaStream::mediaType const): Deleted.
(WebCore::MediaStream::presentationType const): Deleted.
(WebCore::MediaStream::characteristics const): Deleted.
(WebCore::MediaStream::mayResumePlayback): Deleted.
(WebCore::MediaStream::suspendPlayback): Deleted.
(WebCore::MediaStream::sourceApplicationIdentifier const): Deleted.
(WebCore::MediaStream::canProduceAudio const): Deleted.
(WebCore::MediaStream::processingUserGestureForMedia const): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::mediaType const):
(WebCore::MediaStreamTrack::presentationType const):
(WebCore::MediaStreamTrack::characteristics const):
(WebCore::MediaStreamTrack::mayResumePlayback):
(WebCore::MediaStreamTrack::suspendPlayback):
(WebCore::MediaStreamTrack::sourceApplicationIdentifier const):
(WebCore::MediaStreamTrack::canProduceAudio const):
(WebCore::MediaStreamTrack::processingUserGestureForMedia const):

  • Modules/mediastream/MediaStreamTrack.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::hasVideo const):
(WebCore::MediaStreamPrivate::hasAudio const):
(WebCore::MediaStreamPrivate::hasCaptureVideoSource const): Deleted.
(WebCore::MediaStreamPrivate::hasCaptureAudioSource const): Deleted.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.h:

LayoutTests:

  • fast/mediastream/audio-track-enabled.html:
12:50 PM Changeset in webkit [250852] by beidson@apple.com
  • 25 edits
    6 adds in trunk

Service Worker Fetch events should time out.
https://bugs.webkit.org/show_bug.cgi?id=202188

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/workers/service/basic-timeout.https.html

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::setHasTimedOutAnyFetchTasks):
(WebCore::SWServerWorker::hasTimedOutAnyFetchTasks const):

Source/WebKit:

When we start a fetch task in the server, we also start a timeout on that fetch task.

"Time out" means the fetch task must continue to make progress at the given frequency (once every 60 seconds by default)

If any given fetch task times out in a service worker instance, that instance loses the right to handle fetches.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setServiceWorkerFetchTimeoutForTesting):
(WebKit::NetworkProcess::resetServiceWorkerFetchTimeoutForTesting):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::serviceWorkerFetchTimeout const):

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveFormData):
(WebKit::ServiceWorkerFetchTask::didFinish):
(WebKit::ServiceWorkerFetchTask::didFail):
(WebKit::ServiceWorkerFetchTask::didNotHandle):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:

(WebKit::ServiceWorkerFetchTask::create):
(WebKit::ServiceWorkerFetchTask::serviceWorkerIdentifier const):
(WebKit::ServiceWorkerFetchTask::wasHandled const):
(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask): Deleted.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::startFetch):
(WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetServiceWorkerFetchTimeoutForTesting):
(WKContextResetServiceWorkerFetchTimeoutForTesting):

  • UIProcess/API/C/WKContext.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setServiceWorkerTimeoutForTesting):
(WebKit::WebProcessPool::resetServiceWorkerTimeoutForTesting):

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setServiceWorkerFetchTimeout):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::setServiceWorkerFetchTimeoutForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/workers/service/basic-timeout.https-expected.txt: Added.
  • http/tests/workers/service/basic-timeout.https.html: Added.
  • http/tests/workers/service/resources/basic-timeout-worker.js: Added.

(event.event.request.url.indexOf):

  • http/tests/workers/service/resources/basic-timeout.js: Added.

(async.test.finishThisTest):
(async.test.try):
(async.test.try.checkSuccessAgain):
(async.test):

  • http/tests/workers/service/resources/succeed-fallback-check.php: Added.
  • http/tests/workers/service/resources/timeout-fallback.html: Added.
12:38 PM Changeset in webkit [250851] by Matt Lewis
  • 5 edits in trunk/Tools

Unreviewed, rolling out r250784.

Broke running layout tests.

Reverted changeset:

"results.webkit.org: Start reporting results"
https://bugs.webkit.org/show_bug.cgi?id=202639
https://trac.webkit.org/changeset/250784

12:37 PM Changeset in webkit [250850] by Matt Lewis
  • 2 edits in trunk/Tools

Make iPhone simulators pass --iPhone-simulator instead of --iOS
https://bugs.webkit.org/show_bug.cgi?id=202701

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(appendCustomTestingFlags):

12:24 PM Changeset in webkit [250849] by commit-queue@webkit.org
  • 19 edits in trunk

Accept two values in the overflow shorthand
https://bugs.webkit.org/show_bug.cgi?id=184691

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-10-08
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-overflow/overflow-shorthand-001-expected.txt:
  • web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
  • web-platform-tests/css/css-overflow/parsing/overflow-valid-expected.txt:
  • web-platform-tests/css/cssom/shorthand-values-expected.txt:

Source/WebCore:

In https://github.com/w3c/csswg-drafts/issues/2484 it was resolved to accept one or two values in
the overflow shorthand, instead of only one. If two values are specified, the first would be used
for overflow-x and the second for overflow-y. This change was shipped in Firefox 61 and Chrome 68.
This patch implements new syntax while preserving handling of -webkit-paged-x and -webkit-paged-y.

Tests: fast/css/cssText-shorthand.html

fast/css/getComputedStyle/getComputedStyle-overflow.html
imported/w3c/web-platform-tests/css/css-overflow/overflow-shorthand-001.html
imported/w3c/web-platform-tests/css/css-overflow/parsing/overflow-computed.html
imported/w3c/web-platform-tests/css/css-overflow/parsing/overflow-valid.html
imported/w3c/web-platform-tests/css/cssom/shorthand-values.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeOverflowShorthand):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:

LayoutTests:

  • fast/css/cssText-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-overflow-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-overflow.html:
  • platform/ios/fast/css/invalidation-errors-2-expected.txt:
  • platform/ios/fast/css/invalidation-errors-expected.txt:
  • platform/mac/fast/css/invalidation-errors-2-expected.txt:
  • platform/mac/fast/css/invalidation-errors-expected.txt:
12:00 PM Changeset in webkit [250848] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] FTL vmCall should check # of arguments
https://bugs.webkit.org/show_bug.cgi?id=202683

Reviewed by Saam Barati.

This patch inserts static_assert for # of arguments when using FTL vmCall.
It turned out that such check is useful when converting ExecState* to JSGlobalObject*.
Like, first, adding JSGlobalObject* parameter, making it compiled and removing ExecState* and m_callFrame parameter later.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
(JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMod):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
(JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
(JSC::FTL::DFG::LowerDFGToB3::compileValuePow):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
(JSC::FTL::DFG::LowerDFGToB3::compileArithSqrt):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFRound):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitXor):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayify):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineDataProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileDefineAccessorProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectCreate):
(JSC::FTL::DFG::LowerDFGToB3::compileNewPromise):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
(JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileSameValue):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::compileThrow):
(JSC::FTL::DFG::LowerDFGToB3::compileThrowStaticError):
(JSC::FTL::DFG::LowerDFGToB3::mapHashString):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
(JSC::FTL::DFG::LowerDFGToB3::compileSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakSetAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapSet):
(JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileParseInt):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExec):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpExecNonGlobalOrSticky):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFastGlobal):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpTest):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatchFast):
(JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithRadix):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberToStringWithValidRadixConstant):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
(JSC::FTL::DFG::LowerDFGToB3::vmCall):

11:59 AM Changeset in webkit [250847] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests.init): Disabled logging of environment variables.
(ExtractTestResults.init): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
11:58 AM Changeset in webkit [250846] by ajuma@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening

11:54 AM Changeset in webkit [250845] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix WebCore's features.json after r250824

  • features.json: Remove an erroneous "specification" key.
11:48 AM Changeset in webkit [250844] by jiewen_tan@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, test gardening

11:39 AM Changeset in webkit [250843] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Make sure ActiveDOMObject properly deals with detached documents
https://bugs.webkit.org/show_bug.cgi?id=202596

Reviewed by Geoffrey Garen.

For detached document, the script execution context is their context document.
The ActiveDOMObject constructor taking a Document& would make sure to get the
document's contextDocument. However, if the ActiveDOMObject constructor taking
a ScriptExecutionContext* is called, it would assume this is the right script
execution context, which is unsafe. In this patch, all ActiveDOMObject
constructors now check for detached documents and make sure to use their
context document when necessary.

  • dom/ActiveDOMObject.cpp:

(WebCore::suitableScriptExecutionContext):
(WebCore::ActiveDOMObject::ActiveDOMObject):

  • dom/ActiveDOMObject.h:
  • dom/Document.h:
11:30 AM Changeset in webkit [250842] by Ross Kirsling
  • 42 edits
    22 moves
    2 adds
    79 deletes in trunk/JSTests

Update test262 (2019.10.08).

Rubber-stamped by Keith Miller.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
11:28 AM Changeset in webkit [250841] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

fast/events/touch/ios/mouse-events-dispatch-with-touch.html is timing out on iOS
https://bugs.webkit.org/show_bug.cgi?id=202688
<rdar://problem/52700396>

Reviewed by Dean Jackson.

Since this test was originally added, the behavior of simulated mouse events changed to not dispatch any event when there is more than a
single active touch on the screen. This test needs to be adapted to this new behavior.

  • fast/events/touch/ios/mouse-events-dispatch-with-touch.html:
11:21 AM Changeset in webkit [250840] by Matt Lewis
  • 2 edits in trunk/Tools

Fixing the triggerable templates in the config for catalina.
https://bugs.webkit.org/show_bug.cgi?id=202652

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
10:54 AM Changeset in webkit [250839] by Ross Kirsling
  • 25 edits in trunk/Source

Unreviewed. Restabilize non-unified build.

Source/WebCore:

  • Modules/fetch/FetchLoader.h:
  • animation/DocumentTimeline.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSIDBRequestCustom.cpp:
  • bindings/js/JSRemoteDOMWindowCustom.cpp:
  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/WindowProxy.cpp:
  • css/FontFaceSet.cpp:
  • css/FontFaceSet.h:
  • css/typedom/StylePropertyMapReadOnly.cpp:
  • history/CachedPage.h:
  • html/canvas/WebGLBuffer.cpp:
  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLProgram.cpp:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLShader.h:
  • inspector/InspectorController.cpp:
  • inspector/agents/InspectorCanvasAgent.cpp:
  • workers/Worker.cpp:
  • workers/service/ServiceWorkerContainer.cpp:
  • workers/service/ServiceWorkerGlobalScope.cpp:

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
10:44 AM Changeset in webkit [250838] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Sort Internal and Experimental features by human readable name
https://bugs.webkit.org/show_bug.cgi?id=202667

Reviewed by Zalan Bujtas.

Sort the statically generated vectors of internal and
experimental features by their human readable name, rather than
the feature key, so that looking at them in the Settings app
doesn't make people who like alphabetical order angry.

  • Scripts/GeneratePreferences.rb: Add an extra sort call to the list generation.
10:26 AM Changeset in webkit [250837] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Painting] Add very basic block and inline painting
https://bugs.webkit.org/show_bug.cgi?id=202697
<rdar://problem/56076562>

Reviewed by Antti Koivisto.

This is a very basic border/background painting with simple text. No phases/z-index/layers of any kind.

  • layout/displaytree/DisplayBox.h: This seems to be getting out of hand.

(WebCore::Display::Box::moveBy):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintBlockLevelBoxDecoration):
(WebCore::Display::paintInlineContent):
(WebCore::Display::Painter::paint):

  • layout/floats/FloatingContext.h:
  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::inlineRuns const):
(WebCore::Layout::InlineFormattingState::lineBoxes const):

9:55 AM Changeset in webkit [250836] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

Simplify data channel buffer amount low tests
https://bugs.webkit.org/show_bug.cgi?id=202693

Reviewed by Eric Carlson.

Neither of these tests need to handle a remoteChannel.
Remove the related code and remove variables that are also unneeded.

  • webrtc/datachannel/bufferedAmountLowThreshold-default.html:
  • webrtc/datachannel/bufferedAmountLowThreshold.html:
9:32 AM Changeset in webkit [250835] by Alan Coon
  • 23 edits
    3 adds in branches/safari-608.3.10.0-branch

Cherry-pick r250811. rdar://problem/56061124

Only wrapping CryptoKeys for IDB during serialization
https://bugs.webkit.org/show_bug.cgi?id=202500
<rdar://problem/52445927>

Reviewed by Chris Dumez.

Source/WebCore:

Wrapping CryptoKeys during IDB serialization is a legacy request from Netflix when WebKit was an
early adopter. It is not necessary for other kinds of serialization. However, given existing keys
stored in users' idb are wrapped, the wrapping/unwrapping mechanism cannot be easily discarded.
Therefore, this patch restricts the wrapping/unwrapping mechanism to idb only.

To do so, a isWrappingRequired flag is added to CryptoKey such that whenever idb sees a CryptoKey,
it can set it. SerializedScriptValue will then only wrap a CryptoKey when this flag is set. Otherwise,
a new tag UnwrappedCryptoKeyTag is used to store unwrapped CryptoKeys in order to keep the old CryptoKeyTag
binaries intact. For deserialization, each type will be deserialized differently.

Besides the above, this patch also hardens WorkerGlobalScope::wrapCryptoKey/unwrapCryptoKey for
any potential racy issues. CryptoBooleanContainer is introduced to capture boolean in the lambda.
workerGlobalScope is replaced with workerMessagingProxy. Now, every variables captured in the lambdas
should be either a copy or a thread safe ref of the original object.

Test: crypto/workers/subtle/aes-indexeddb.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::JSC::setIsWrappingRequiredForCryptoKey): (WebCore::IDBObjectStore::putOrAdd):
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::isWrappingRequired const): (WebCore::CryptoKey::setIsWrappingRequired):
  • dom/ScriptExecutionContext.h:
  • workers/WorkerGlobalScope.cpp: (WebCore::CryptoBooleanContainer::create): (WebCore::CryptoBooleanContainer::boolean const): (WebCore::CryptoBooleanContainer::setBoolean): (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey):
  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h: (WebCore::WorkerLoaderProxy::isWorkerMessagingProxy const):
  • workers/WorkerMessagingProxy.h: (isType):

Tools:

Modifies IndexedDB.StructuredCloneBackwardCompatibility test to include CryptoKeys.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: (-[StructuredCloneBackwardCompatibilityNavigationDelegate _webCryptoMasterKeyForWebView:]): (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html:

LayoutTests:

Adds a new test aes-indexeddb.html to do idb in workers and makes
other tests more deterministic.

  • crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
  • crypto/workers/subtle/aes-indexeddb.html: Added.
  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/ec-postMessage-worker.html:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker.html:
  • crypto/workers/subtle/resources/aes-indexeddb.js: Added.
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker.html:

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

9:20 AM Changeset in webkit [250834] by Alan Coon
  • 23 edits
    3 adds in branches/safari-608.3.10.1-branch

Cherry-pick r250811. rdar://problem/56075033

Only wrapping CryptoKeys for IDB during serialization
https://bugs.webkit.org/show_bug.cgi?id=202500
<rdar://problem/52445927>

Reviewed by Chris Dumez.

Source/WebCore:

Wrapping CryptoKeys during IDB serialization is a legacy request from Netflix when WebKit was an
early adopter. It is not necessary for other kinds of serialization. However, given existing keys
stored in users' idb are wrapped, the wrapping/unwrapping mechanism cannot be easily discarded.
Therefore, this patch restricts the wrapping/unwrapping mechanism to idb only.

To do so, a isWrappingRequired flag is added to CryptoKey such that whenever idb sees a CryptoKey,
it can set it. SerializedScriptValue will then only wrap a CryptoKey when this flag is set. Otherwise,
a new tag UnwrappedCryptoKeyTag is used to store unwrapped CryptoKeys in order to keep the old CryptoKeyTag
binaries intact. For deserialization, each type will be deserialized differently.

Besides the above, this patch also hardens WorkerGlobalScope::wrapCryptoKey/unwrapCryptoKey for
any potential racy issues. CryptoBooleanContainer is introduced to capture boolean in the lambda.
workerGlobalScope is replaced with workerMessagingProxy. Now, every variables captured in the lambdas
should be either a copy or a thread safe ref of the original object.

Test: crypto/workers/subtle/aes-indexeddb.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::JSC::setIsWrappingRequiredForCryptoKey): (WebCore::IDBObjectStore::putOrAdd):
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
  • crypto/CryptoKey.h: (WebCore::CryptoKey::isWrappingRequired const): (WebCore::CryptoKey::setIsWrappingRequired):
  • dom/ScriptExecutionContext.h:
  • workers/WorkerGlobalScope.cpp: (WebCore::CryptoBooleanContainer::create): (WebCore::CryptoBooleanContainer::boolean const): (WebCore::CryptoBooleanContainer::setBoolean): (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey):
  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h: (WebCore::WorkerLoaderProxy::isWorkerMessagingProxy const):
  • workers/WorkerMessagingProxy.h: (isType):

Tools:

Modifies IndexedDB.StructuredCloneBackwardCompatibility test to include CryptoKeys.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: (-[StructuredCloneBackwardCompatibilityNavigationDelegate _webCryptoMasterKeyForWebView:]): (TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html:

LayoutTests:

Adds a new test aes-indexeddb.html to do idb in workers and makes
other tests more deterministic.

  • crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
  • crypto/workers/subtle/aes-indexeddb.html: Added.
  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/ec-postMessage-worker.html:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker.html:
  • crypto/workers/subtle/resources/aes-indexeddb.js: Added.
  • crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/rsa-postMessage-worker.html:

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

9:13 AM Changeset in webkit [250833] by Alan Coon
  • 5 edits in branches/safari-608.3.10.1-branch

Apply patch. rdar://problem/55920073

9:10 AM Changeset in webkit [250832] by Alan Coon
  • 7 edits in branches/safari-608.3.10.1-branch/Source

Versioning.

9:04 AM Changeset in webkit [250831] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, try to fix the WinCairo build after r250824

  • dom/IdleDeadline.h:

Add a missing include for <wtf/Ref.h>, such that the adoptRef function is defined.

9:00 AM Changeset in webkit [250830] by Alan Coon
  • 11 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Cherry-pick r250780. rdar://problem/56061130

Provide options for DTTZ to happen in more situations
https://bugs.webkit.org/show_bug.cgi?id=202634
<rdar://problem/55732762>

Reviewed by Antoine Quint.

Add two options that can be enabled to trigger double tap zooming
in more places.

Firstly, an option to keep listening for a double-tap-to-zoom if the
first tap found a click handler on the body or document element. The
tap will still be dispatched. This is probably the most common case
for disabling a DTTZ.

Secondly, an option to always keep listening for a double-tap-to-zoom,
even if there was a clickable (non-root) element under the first tap.

  • Shared/WebPreferences.yaml: Add ZoomOnDoubleTapWhenRoot and AlwaysZoomOnDoubleTap.
  • UIProcess/PageClient.h: The message from the WebProcess now tells the UIProcess if the tapped element was a root-level (document or body).
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]): Handle the two new options.
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::potentialTapAtPosition): Check if the tap was on a root-level element.

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

9:00 AM Changeset in webkit [250829] by Alan Coon
  • 6 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Cherry-pick r250755. rdar://problem/56061130

Use a better name than allowFastClicksEverywhere
https://bugs.webkit.org/show_bug.cgi?id=202607
<rdar://problem/55997133>

Reviewed by Tim Horton.

This preference name is quite confusing. Change it to
PreferFasterClickOverDoubleTap.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::preferFasterClickOverDoubleTap const): (WebKit::WebPageProxy::allowsFastClicksEverywhere const): Deleted.
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

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

9:00 AM Changeset in webkit [250828] by Alan Coon
  • 5 edits in branches/safari-608.3.10.0-branch/Source/WebCore

Cherry-pick r250694. rdar://problem/56061133

[iOS] WebContent process can be interrupted during suspension; loses "Now Playing" status

https://bugs.webkit.org/show_bug.cgi?id=202537
<rdar://problem/55952707>

Reviewed by Eric Carlson.

Always deactivate the AVAudioSession when the last playing PlatformAudioSession ends playback and the application is in the background.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::removeSession): (WebCore::PlatformMediaSessionManager::processWillSuspend): (WebCore::PlatformMediaSessionManager::maybeDeactivateAudioSession):
  • platform/audio/PlatformMediaSessionManager.h: (WebCore::PlatformMediaSessionManager::isApplicationInBackground const):
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::sessionWillEndPlayback):

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

8:51 AM Changeset in webkit [250827] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, try to fix the open source macOS build after r250824

  • bindings/js/JSDOMConvertRecord.h:

Add a missing #include for JSDOMGlobalObject. This file utilizes methods on JSDOMGlobalObject, but only ensures
that it has a forward declaration of JSDOMGlobalObject (by way of including JSDOMExceptionHandling.h through
JSDOMConvertBase.h).

8:14 AM Changeset in webkit [250826] by Alan Coon
  • 2 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Cherry-pick r250438. rdar://problem/55984974

Unreviewed build-fix: wrap the AssertionServicesSPI.h in an IOS_FAMILY check.

  • WebProcess/cocoa/WebProcessCocoa.mm:

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

8:13 AM Changeset in webkit [250825] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Unreviewed, update DerivedSources xcfilelists after r250816

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
7:50 AM Changeset in webkit [250824] by Wenson Hsieh
  • 27 edits
    9 copies
    6 adds in trunk

[Clipboard API] Introduce bindings for the async Clipboard API
https://bugs.webkit.org/show_bug.cgi?id=202622
<rdar://problem/56038126>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds IDL for the async clipboard API (with the exception of delayed item generation interfaces, which
I'll iterate on and introduce separately). See: https://w3c.github.io/clipboard-apis/#async-clipboard-api for
more information.

Tests: editing/async-clipboard/clipboard-interfaces.html

editing/async-clipboard/clipboard-wrapper-stays-alive.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::create):
(WebCore::Clipboard::Clipboard):
(WebCore::Clipboard::navigator):
(WebCore::Clipboard::eventTargetInterface const):
(WebCore::Clipboard::scriptExecutionContext const):
(WebCore::Clipboard::readText):
(WebCore::Clipboard::writeText):
(WebCore::Clipboard::read):
(WebCore::Clipboard::write):

Stub out these API calls for now by immediately rejecting the given promise.

  • Modules/async-clipboard/Clipboard.h:
  • Modules/async-clipboard/Clipboard.idl:
  • Modules/async-clipboard/ClipboardItem.cpp:

(WebCore::ClipboardItem::ClipboardItem):
(WebCore::ClipboardItem::create):
(WebCore::ClipboardItem::types const):
(WebCore::ClipboardItem::getType):

Stub out these API calls for now by immediately rejecting the given promise.

(WebCore::navigator):

  • Modules/async-clipboard/ClipboardItem.h:

(WebCore::ClipboardItem::presentationStyle const):

  • Modules/async-clipboard/ClipboardItem.idl:
  • Modules/async-clipboard/NavigatorClipboard.cpp:

(WebCore::NavigatorClipboard::NavigatorClipboard):
(WebCore::NavigatorClipboard::clipboard):
(WebCore::NavigatorClipboard::from):
(WebCore::NavigatorClipboard::supplementName):

  • Modules/async-clipboard/NavigatorClipboard.h:
  • Modules/async-clipboard/NavigatorClipboard.idl:
  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/mediastream/RTCDTMFSender.cpp:
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/webgpu/WebGPUPipeline.h:

More unified sources-related build fixes.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/DeviceOrientationOrMotionEvent.cpp:

Unified sources-related build fix.

  • dom/EventTargetFactory.in:
  • features.json:

Add Async Clipboard API as a feature in development on webkit.org.

  • page/Settings.yaml:

Source/WebKit:

Adds a new experimental feature flag. See WebCore ChangeLog for more details.

  • Shared/WebPreferences.yaml:

LayoutTests:

  • editing/async-clipboard/clipboard-interfaces-expected.txt: Added.
  • editing/async-clipboard/clipboard-interfaces.html: Added.

Add a new test to sanity check the new clipboard API interfaces and interface extensions.

  • editing/async-clipboard/clipboard-wrapper-stays-alive-expected.txt: Added.
  • editing/async-clipboard/clipboard-wrapper-stays-alive.html: Added.

Add a new test to make sure that the clipboard wrapper stays alive between GC passes, even when the clipboard's
navigator is kept alive, independently of its window object.

  • fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wincairo/fast/dom/navigator-detached-no-crash-expected.txt:

Update an existing layout test to include "navigator.clipboard".

6:56 AM Changeset in webkit [250823] by ajuma@chromium.org
  • 3 edits
    4 copies
    51 adds
    1 delete in trunk/LayoutTests

Import autofocus Web Platform Tests
https://bugs.webkit.org/show_bug.cgi?id=202641

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Import web platform tests for autofocus, and remove duplicated test from
http/wpt/html/semantics/forms/autofocus.

  • resources/import-expectations.json:
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/autofocus-in-not-fully-active-document-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/autofocus-in-not-fully-active-document.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/autofocus-on-stable-document-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/autofocus-on-stable-document.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-reconnected-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-reconnected.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-when-later-but-before-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-when-later-but-before.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-when-later-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-when-later.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/first.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/focusable-area-in-top-document.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/no-cross-origin-autofocus-expected.txt: Renamed from LayoutTests/http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub-expected.txt.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/no-cross-origin-autofocus.html: Copied from LayoutTests/http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub.html.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/no-sandboxed-automatic-features-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/no-sandboxed-automatic-features.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/not-on-first-task-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/not-on-first-task.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/queue-non-focusable-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/queue-non-focusable.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/child-autofocus.html: Renamed from LayoutTests/http/wpt/html/semantics/forms/autofocus/resources/child-autofocus.html.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/child-iframe.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/erase-first.css: Added.

(#first):

  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/frame-with-autofocus-element.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/grand-child-autofocus.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/moving-autofocus-to-parent.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/utils.js: Added.

(waitForEvent):
(timeOut):
(async.waitUntilStableAutofocusState):

  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/w3c-import.log: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/same-origin-autofocus-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/same-origin-autofocus.html: Renamed from LayoutTests/http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub.html.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-another-top-level-browsing-context-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-another-top-level-browsing-context.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-non-focusable-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-non-focusable.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/skip-not-fully-active.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/spin-by-blocking-style-sheet-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/spin-by-blocking-style-sheet.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html: Added.
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/w3c-import.log: Added.

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt: Added.
5:51 AM Changeset in webkit [250822] by commit-queue@webkit.org
  • 5 edits in trunk

Fetch: data: URL HEAD request should result in empty response body
https://bugs.webkit.org/show_bug.cgi?id=175764

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-08
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/fetch/api/basic/scheme-data.any.js:
  • web-platform-tests/xhr/data-uri-expected.txt:

Source/WebCore:

Do not build the response body for HEAD requests for data urls:
https://fetch.spec.whatwg.org/#concept-main-fetch (Step 13)

Tests: imported/web-platform-tests/fetch/api/basic/scheme-data.any.js

imported/web-platform-tests/xhr/data-uri.html

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL):

5:22 AM Changeset in webkit [250821] by Antti Koivisto
  • 10 edits
    9 adds in trunk

[CSS Shadow Parts] Implement style invalidation
https://bugs.webkit.org/show_bug.cgi?id=202632

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/invalidation-change-exportparts-forward-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-forward-expected.txt:

Source/WebCore:

Tests: fast/css/shadow-parts/invalidation-class-descendant-combinator-export.html

fast/css/shadow-parts/invalidation-class-descendant-combinator.html
fast/css/shadow-parts/invalidation-class-sibling-combinator-export.html
fast/css/shadow-parts/invalidation-class-sibling-combinator.html

  • css/RuleFeature.cpp:

(WebCore::isSiblingOrSubject):

Don't treat crossing to host as moving to ancestor when computing elements impacted by a selector.
StyleInvalidator expects these relations to be about the host element, shadow tree invalidation in handled separately.

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

Invalidate parts in shadow tree on 'exportparts' attribute mutation.

(WebCore::Element::partAttributeChanged):

Invalidate element on 'part' attribute mutation.

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::Invalidator):
(WebCore::Style::Invalidator::invalidateIfNeeded):

Invalidate parts in shadow tree during class and attribute mutation invalidation.

(WebCore::Style::Invalidator::invalidateShadowParts):

  • style/StyleInvalidator.h:

(WebCore::Style::Invalidator::dirtiesAllStyle const):
(WebCore::Style::Invalidator::hasShadowPseudoElementRulesInAuthorSheet const): Deleted.

Remove an unncessary bool.

LayoutTests:

Add some tests to verify class mutations and combinators with ::part and exportpart.

  • fast/css/shadow-parts/invalidation-class-descendant-combinator-expected.txt: Added.
  • fast/css/shadow-parts/invalidation-class-descendant-combinator-export-expected.txt: Added.
  • fast/css/shadow-parts/invalidation-class-descendant-combinator-export.html: Added.
  • fast/css/shadow-parts/invalidation-class-descendant-combinator.html: Added.
  • fast/css/shadow-parts/invalidation-class-sibling-combinator-expected.txt: Added.
  • fast/css/shadow-parts/invalidation-class-sibling-combinator-export-expected.txt: Added.
  • fast/css/shadow-parts/invalidation-class-sibling-combinator-export.html: Added.
  • fast/css/shadow-parts/invalidation-class-sibling-combinator.html: Added.
3:03 AM Changeset in webkit [250820] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK] Navigation gesture improvements
https://bugs.webkit.org/show_bug.cgi?id=202645

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2019-10-08
Reviewed by Carlos Garcia Campos.

Measure velocity threshold in pixels per second rather than distance (range [0-1])
per second. The value is the same as it was on touchpads, since a fixed distance is
used, but is now consistent on touchscreens, regardless of the webview width.

Add a threshold for cancelling gesture when the page is more than halfway
through, so that it's symmetric with the first half.

Align the moving page to pixel grid on hidpi devices correctly. Just
rounding the position doesn't work correctly, since the cairo context is
pre-scaled. Multiplying by scale factor, rounding and then dividing by
scale factor fixes this.

  • UIProcess/ViewGestureController.h:
  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::SwipeProgressTracker::reset):
(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
(WebKit::ViewGestureController::SwipeProgressTracker::shouldCancel):
(WebKit::ViewGestureController::draw):

2:06 AM Changeset in webkit [250819] by Carlos Garcia Campos
  • 6 edits
    3 deletes in trunk/Source

Unreviewed. Remove unused WebKitSoupRequestGeneric after r250597

Source/WebCore:

  • platform/Soup.cmake:
  • platform/SourcesSoup.txt:
  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupRequest const):

  • platform/network/soup/WebKitSoupRequestGeneric.cpp: Removed.
  • platform/network/soup/WebKitSoupRequestGeneric.h: Removed.
  • platform/network/soup/WebKitSoupRequestGenericClient.h: Removed.

Source/WebKit:

  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
1:52 AM Changeset in webkit [250818] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Build fails with ENABLE_WEBDRIVER=OFF
https://bugs.webkit.org/show_bug.cgi?id=202658

Reviewed by Carlos Garcia Campos.

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: Add missing

ENABLE(WEBDRIVER_MOUSE_INTERACTIONS) and ENABLE(WEBDRIVER_KEYBOARD_INTERACTIONS)
preprocessor guards.

  • UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: Ditto.
12:31 AM Changeset in webkit [250817] by Antti Koivisto
  • 8 edits in trunk

[CSS Shadow Parts] Internal shadow pseudo elements should work with ::part
https://bugs.webkit.org/show_bug.cgi?id=202620

Reviewed by Ryosuke Niwa.

Source/WebCore:

Selectors like ::part(foo)::placeholder should work.

This involves hop out of a UA shadow tree and then from an author shadow tree.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchPartPseudoElementRules):

If we are matching a pseudo element in a UA shadow tree, see if part rules can match is the surrounding scope.

(WebCore::ElementRuleCollector::matchPartPseudoElementRulesForScope):

  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:

(WebCore::RuleSet::addRule):

Sort rules with both internal pseudo element and ::part to the part bucket.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):

Allow multiple ShadowDescendant relations for ::part.

LayoutTests:

Note that imported/w3c/web-platform-tests/css/css-shadow-parts/interaction-with-pseudo-elements.html placeholder subtest still
won't pass because we we don't support getComputedStyle for internal pseudo elements. Visually it now work fully.

Unskip imported/w3c/web-platform-tests/css/css-shadow-parts/interaction-with-placeholder.html

Note: See TracTimeline for information about the timeline view.