Timeline



Oct 14, 2019:

11:59 PM Changeset in webkit [251124] by youenn@apple.com
  • 36 edits
    3 deletes in trunk

Handle service worker loads through NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=202309

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:

Source/WebCore:

Allow to serialize HTTP header names as enumeration.
Updated SWServer ability to handle schemes by adding built-in support for HTTP and HTTPS as done in LegacySchemeRegistry.

Covered by existing tests.

  • loader/ResourceLoaderOptions.h:
  • platform/network/create-http-header-name-table:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::canHandleScheme const):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::runRegisterJob):

Source/WebKit:

Remove ServiceWorkerFetchClient.
Instead we use the normal NetworkResourceLoader/WebResourceLoader communication channel.
We pass additional parameters, in particular service worker mode and registration identifier.

Based on that information, network process will decide whether to load from service worker or network.
The first advantage is that in case of service worker not handling the load, going to the network is faster.
This will also allow us to do the registration matching in network process when receiving a navigation request.

ServiceWorkerFetchTask is now beefed up to do the link between service worker and NetworkResourceLoader/WebResourceLoader.
To support the same console logging, we add a new message called DidFailServiceWorkerLoad.

To support API tests, we continue to go to the service worker before trying to go to URL scheme handlers.
This adds some burden as we need to go to network process/service worker process and, in case load is not handled
by service worker, we go back to the web process to do the load through URL scheme handlers.
For that purpose we use ServiceWorkersMode::Only.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
(WebKit::NetworkResourceLoader::startWithServiceWorker):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

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

(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::~ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::sendToServiceWorker):
(WebKit::ServiceWorkerFetchTask::sendToClient):
(WebKit::ServiceWorkerFetchTask::start):
(WebKit::ServiceWorkerFetchTask::startFetch):
(WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveFormData):
(WebKit::ServiceWorkerFetchTask::didFinish):
(WebKit::ServiceWorkerFetchTask::didFail):
(WebKit::ServiceWorkerFetchTask::didNotHandle):
(WebKit::ServiceWorkerFetchTask::cancelFromClient):
(WebKit::ServiceWorkerFetchTask::continueDidReceiveFetchResponse):
(WebKit::ServiceWorkerFetchTask::continueFetchTaskWith):
(WebKit::ServiceWorkerFetchTask::timeoutTimerFired):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:

(WebKit::ServiceWorkerFetchTask::fetchIdentifier const):
(WebKit::ServiceWorkerFetchTask::serviceWorkerIdentifier const):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::startFetch):
(WebKit::WebSWServerToContextConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWServerToContextConnection::didReceiveFetchTaskMessage):
(WebKit::WebSWServerToContextConnection::registerFetch):
(WebKit::WebSWServerToContextConnection::unregisterFetch):
(WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:

(WebKit::WebSWServerToContextConnection::ipcConnection const):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didFailServiceWorkerLoad):
(WebKit::WebResourceLoader::serviceWorkerDidNotHandle):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Storage/ServiceWorkerClientFetch.cpp: Removed.
  • WebProcess/Storage/ServiceWorkerClientFetch.h: Removed.
  • WebProcess/Storage/ServiceWorkerClientFetch.messages.in: Removed.
  • WebProcess/Storage/WebSWClientConnection.cpp:
  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:
  • WebProcess/Storage/WebServiceWorkerProvider.h:
10:53 PM Changeset in webkit [251123] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Unify sources for bindings more densely
https://bugs.webkit.org/show_bug.cgi?id=202918

Reviewed by Simon Fraser.

Source/WebCore:

No new tests, just a build time speedup.
For me, this is a reliable 17% boost on the WebCore Build Time Benchmark.

  • Scripts/generate-unified-sources.sh:

Use dense bundles for JS* and bindings/js/*.
This seems acceptable for a few reasons:

  • most of the time building these files is spent parsing the exact

same set of JSC headers, because the generated bindings code ends
up including the same set of things

  • the incremental build cost of bundling more bindings sources together

is small, because the JSC headers dominate the time

  • folks will frequently have to rebuild all of the bindings (on every

pull, for example, because they indirectly include most JSC headers),
but rarely end up rebuilding only a single one (in my experience)

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::readableStreamCallFunction):
(WebCore::ReadableStreamDefaultController::invoke):
(WebCore::callFunction): Deleted.
Deduplicate static functions that now get bundled together.

  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::currentTimeToMediaTime):

  • platform/graphics/ca/PlatformCALayer.h:

In older macOS SDKs, CABase.h included ApplicationServices.h, which
causes lots of trouble.

Source/WTF:

  • Scripts/generate-unified-source-bundles.rb:

Add an option to separate and more densely unify sources that match
a given glob pattern.

10:30 PM Changeset in webkit [251122] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK] White pages in AC mode: Cannot get default EGL display: EGL_BAD_PARAMETER
https://bugs.webkit.org/show_bug.cgi?id=202362

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

The problem is that PlatformDisplayLibWPE::initialize() is failing to initialize the EGL display for some
reason. We need to understand why, but we should also handle the case of failing to initialize the EGL display
and simply disable accelerated compositing mode to avoid white pages and crashes in websites using WebGL. This
patch doesn't actually fix the bug, it just handles the EGL display initialization failure.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::~PlatformDisplay): Set s_sharedDisplayForCompositing to nullptr when the shared
display for compositing is destroyed.

  • platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:

(WebCore::PlatformDisplayLibWPE::initialize): Return false when EGL display initialization fails.

  • platform/graphics/libwpe/PlatformDisplayLibWPE.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences): Disable accelerated compositing mode when we failed
to reate the shared display for compositing.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Destroy the wpe display when initialization fails.

10:28 PM Changeset in webkit [251121] by Chris Dumez
  • 43 edits
    1 copy in trunk/Source

[WK2] Have WebBackForwardCache class coordinate page caching in all WebProcesses
https://bugs.webkit.org/show_bug.cgi?id=202929
<rdar://problem/56250421>

Reviewed by Alex Christensen.

Source/WebCore:

Drop FrameLoaderClient::didSaveToPageCache() function as it is no longer needed.
Instead, we now call HistoryItem::notifyChanged() whenever HistoryItem::m_cachedPage
changes. This communicates to the UIProcess whether or not a HistoryItem has an
associated CachedPage.

I also added more release logging to the PageCache and renamed its logging channel
from PageCache to WebBackForwardCache to match the UIProcess's channel.

  • history/BackForwardItemIdentifier.h:

(WebCore::BackForwardItemIdentifier::string const):

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::setCachedPage):
(WebCore::HistoryItem::takeCachedPage):

  • history/HistoryItem.h:
  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable):
(WebCore::PageCache::take):
(WebCore::PageCache::removeAllItemsForPage):
(WebCore::PageCache::get):
(WebCore::PageCache::remove):
(WebCore::PageCache::prune):

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

(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):

  • loader/FrameLoaderClient.h:
  • platform/Logging.h:

Source/WebKit:

Have WebBackForwardCache class coordinate page caching in all WebProcesses. To achieve this, the
following changes were made:

  1. Whenever HistoryItem::m_cachedPage changes in WebCore, we notify the client that the HistoryItem has changed. I added a "hasCachedPage" boolean to the item info being passed the the UIProcess that is set based on whether or not HistoryItem::m_cachedPage is null.
  2. The WebBackForwardCache now contains WebBackForwardCacheEntry objects instead of SuspendedPage objects. A WebBackForwardCacheEntry may have a SuspendedPage or not. As a result, we can now add the the back/forward cache CachedPage entries from the WebContent process, which do not have a SuspendedPageProxy in the UIProcess.
  3. Now that WebBackForwardCache is aware of all CachedPages, it can properly enforce a cache capacity across call processes. Whenever a WebBackForwardCacheEntry is pruned from the cache and this entry does not have a SuspendedPageProxy, we send an IPC to the WebContent process to remove this cached page from the PageCache in WebCore.

Previously, as soon as we would cache a page in the WebContent process, we would send an IPC to the
UIProcess so that it would clear the PageCache in any previous WebContent process. This was a stop-gap
measure to avoid blowing up memory in a multi-process model by keeping a PageCache around in all
WebContent process. This would make sure only one process could have a PageCache at any point in time.
This logic is now dropped since the WebBackForwardCache can keep track of all cached pages across all
processes and enforce a cross-process limit on the number of cached pages. This means we can now have
PageCache entries across several WebContent processes, as long as we do not exceed the maximum number
of cached pages.

  • Platform/Logging.h:

Add new BackForwardCache logging channel.

  • Shared/SessionState.cpp:

(WebKit::BackForwardListItemState::encode const):
(WebKit::BackForwardListItemState::decode):

  • Shared/SessionState.h:

Add new bit to BackForwardListItemState to indicate whether a HistoryItem has an associated
CachedPage or not.

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::~WebBackForwardListItem):
(WebKit::WebBackForwardListItem::wasRemovedFromBackForwardList):
(WebKit::WebBackForwardListItem::removeFromBackForwardCache):
(WebKit::WebBackForwardListItem::setBackForwardCacheEntry):
(WebKit::WebBackForwardListItem::suspendedPage const):
(WebKit::WebBackForwardListItem::loggingString):

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::backForwardCacheEntry const):
WebBackForwardListItem now own a WebBackForwardCacheEntry instead of simply a
SuspendedPage. The WebBackForwardCacheEntry may have a SuspendedPage or not.
Now, whenever a HistoryItem has a CachedPage in WebCore, its corresponding
WebBackForwardListItem in the UIProcess has an associated WebBackForwardCacheEntry
whether we have a SuspendedPageProxy for it in the UIProcess or not.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:

Pass the PageCache capacity to the WebContent process on creation, so that it matches the
capacity of the WebBackForwardCache in the UIProcess.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::suspensionTimedOut):

  • UIProcess/SuspendedPageProxy.h:

Stop storing the WebBackForwardListItem on the SuspendedPageProxy. This avoids having to
keep this pointer up to date. We do not really need it as we can now ask the WebBackForwardCache
to clear an entry by giving it a SuspendedPageProxy to match. Given how many entries we have at
most in the cache (2), iterating over them to find the one with a given suspended page is cheap.

  • UIProcess/WebBackForwardCache.cpp:

(WebKit::WebBackForwardCache::WebBackForwardCache):
(WebKit::WebBackForwardCache::~WebBackForwardCache):

(WebKit::WebBackForwardCache::setCapacity):
Send an IPC of each WebProcess whenever the capacity of the WebBackForwardCache changes, in order
to update the capacity of the PageCache in those processes.

(WebKit::WebBackForwardCache::addEntry):
(WebKit::WebBackForwardCache::removeEntry):
(WebKit::WebBackForwardCache::takeSuspendedPage):
(WebKit::WebBackForwardCache::removeEntriesForProcess):
(WebKit::WebBackForwardCache::removeEntriesForSession):
(WebKit::WebBackForwardCache::removeEntriesMatching):
(WebKit::WebBackForwardCache::clear):

  • UIProcess/WebBackForwardCache.h:

Use a Vector instead of a ListHashSet to store the entries. Given that we have at most 2 entries, using
a Vector will likely be more efficient and definitely use less memory.

  • UIProcess/WebBackForwardCacheEntry.h: Added.

(WebKit::WebBackForwardCacheEntry::backForwardCache const):
(WebKit::WebBackForwardCacheEntry::WebBackForwardCacheEntry):
Add new WebBackForwardCacheEntry abstraction to match the concept of WebCore::CachedPage in the UIProcess.
A WebBackForwardCacheEntry may have a SuspendedPageProxy associated with it in the UIProcess or not.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

Drop didSaveToPageCache as it is no longer necessary.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::disconnectProcess):

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

(WebKit::WebProcessProxy::updateBackForwardItem):
Whenever we get a BackForwardItem from the WebContent process, we now check it now has
an associated CachedPage or not. If it does, we make sure we add a corresponding
entry in the WebBackForwardCache so that the UIProcess knows about it. If it no longer
has a CachedPage and we don't have a SuspendedPageProxy for this item in the UIProcess,
then we remove the corresponding entry from the back/forward cache. Note that we don't
drop SuspendedPageProxy objects in the UIProcess simply because their corresponding
CachedPage in the WebProcess is gone, to maintain previous behavior. This is an
optimization that is useful on iOS, where we do not have a WebProcessCache, since we
can reuse processes from SuspendedPageProxies on navigation.

  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toBackForwardListItemState):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setBackForwardCacheCapacity):
(WebKit::WebProcess::clearCachedPage):

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

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebCoreSupport/WebFrameLoaderClient.h:
8:50 PM Changeset in webkit [251120] by rniwa@webkit.org
  • 4 edits
    33 adds in trunk/LayoutTests

Import W3C tests for requestidlecallback
https://bugs.webkit.org/show_bug.cgi?id=202946

Reviewed by Wenson Hsieh.

LayoutTests/imported/w3c:

Imported web platform tests for requestidlecallback as of 38c2e8d53c9e54f5c4a914d1528aff4e60f07cdf.

  • resources/import-expectations.json:
  • web-platform-tests/requestidlecallback/META.yml: Added.
  • web-platform-tests/requestidlecallback/basic-expected.txt: Added.
  • web-platform-tests/requestidlecallback/basic.html: Added.
  • web-platform-tests/requestidlecallback/callback-exception-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-exception.html: Added.
  • web-platform-tests/requestidlecallback/callback-idle-periods-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-idle-periods.html: Added.
  • web-platform-tests/requestidlecallback/callback-iframe-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-iframe.html: Added.
  • web-platform-tests/requestidlecallback/callback-invoked-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-invoked.html: Added.
  • web-platform-tests/requestidlecallback/callback-multiple-calls-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-multiple-calls.html: Added.
  • web-platform-tests/requestidlecallback/callback-removed-frame-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-removed-frame.html: Added.
  • web-platform-tests/requestidlecallback/callback-suspended-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-suspended.html: Added.
  • web-platform-tests/requestidlecallback/callback-timeout-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-timeout-when-busy-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-timeout-when-busy.html: Added.
  • web-platform-tests/requestidlecallback/callback-timeout.html: Added.
  • web-platform-tests/requestidlecallback/callback-xhr-sync-expected.txt: Added.
  • web-platform-tests/requestidlecallback/callback-xhr-sync.html: Added.
  • web-platform-tests/requestidlecallback/cancel-invoked-expected.txt: Added.
  • web-platform-tests/requestidlecallback/cancel-invoked.html: Added.
  • web-platform-tests/requestidlecallback/idlharness.window-expected.txt: Added.
  • web-platform-tests/requestidlecallback/idlharness.window.html: Added.
  • web-platform-tests/requestidlecallback/idlharness.window.js: Added.

(async.idl_array.await.new.Promise.resolve.resolve):

  • web-platform-tests/requestidlecallback/resources/post_name_on_load.html: Added.
  • web-platform-tests/requestidlecallback/resources/w3c-import.log: Added.
  • web-platform-tests/requestidlecallback/w3c-import.log: Added.

LayoutTests:

  • tests-options.json:
7:00 PM Changeset in webkit [251119] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

Outsets for referenced SVG filters are always zero
https://bugs.webkit.org/show_bug.cgi?id=202826

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-10-14
Reviewed by Simon Fraser.

Source/WebCore:

Sometimes the filter is applied only to a part of the image, so we need
to enlarge the source rectangle such that the border of the result image
looks like as if the filter were applied to the whole image.

The filter outsets should only be calculated for the blur and the drop
shadow filters. The problem is FilterOperations::outsets() was returning
empty outsets always for the referenced filters.

Since the referenced filters must be software filters, the fix is to rely
on CSSFilter in calculating the filter outsets for software filters.

By adding a virtual function called outset() to the FilterEffect class,
we can loop through the CSSFilter::m_effects asking every FilterEffect
to return its outset(). This function is only overridden by FEDropShadow
and FEGaussianBlur.

This should work because RenderLayer builds the CSSFilter when the styleChanged()
happens through its updateFilterPaintingStrategy(). This will guarantee
that m_filters->filter()->outsets() will return the correct outsets for
the referenced and the non-referenced software filters.

We should keep FilterOperations::outsets() because it has be used for
the hardware non-referenced filters. In that case, RenderLayer does not
build the the filter effects. Therefore m_filters can't be used because
it is null in this case.

For accuracy, hasOutsets() implementation is deleted. Having a blur or
drop shadow filter effect is not enough to say hasOutsets() is true. We
need to calculate the outsets first and then ask if it isZero() or not.

Test: css3/filters/svg-blur-filter-clipped.html

  • platform/graphics/IntRectExtent.h:

(WebCore::operator==):
(WebCore::operator+=):
(WebCore::IntRectExtent::expandRect const): Deleted.
IntRectExtent is only used as a filter outsets. So add the definition of
IntOutsets in IntRectExtent.h.

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::outsets const):

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::calculateOutsetSize):
(WebCore::FEGaussianBlur::outsets const):

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::outsets const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::outsets const):
(WebCore::outsetSizeForBlur): Deleted.
(WebCore::FilterOperations::hasOutsets const): Deleted.

  • platform/graphics/filters/FilterOperations.h:

(WebCore::FilterOperations::hasOutsets const):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::build):
(WebCore::CSSFilter::computeSourceImageRectForDirtyRect):
(WebCore::CSSFilter::outsets const):
Calculate m_outsets once and cache its value for later uses.

  • rendering/CSSFilter.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::hasAncestorWithFilterOutsets const):
(WebCore::transparencyClipBox):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::filterOutsets const):
(WebCore::RenderStyle::hasFilterOutsets const): Deleted.

LayoutTests:

  • css3/filters/svg-blur-filter-clipped-expected.html: Added.
  • css3/filters/svg-blur-filter-clipped.html: Added.
  • platform/ios/TestExpectations:
6:37 PM Changeset in webkit [251118] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Update WebKit Build Archives page on webkit.org
https://bugs.webkit.org/show_bug.cgi?id=202871

Patch by Ling Ho <lingcherd_ho@apple.com> on 2019-10-14
Reviewed by Alexey Proskuryakov.

Added Catalina and remove Sierra.

  • wp-content/themes/webkit/build-archives.php:
6:20 PM Changeset in webkit [251117] by Wenson Hsieh
  • 24 edits in trunk/Source

[Clipboard API] Refactor custom pasteboard writing codepaths to handle multiple items
https://bugs.webkit.org/show_bug.cgi?id=202916

Reviewed by Tim Horton.

Source/WebCore:

Adjusts the Pasteboard::write codepath for writing PasteboardCustomData to the platform pasteboard, such that
it accepts multiple PasteboardCustomDatas. No new tests, since there is no behavior change.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::commitToPasteboard):

Pass in the PasteboardCustomData as a single-item vector.

  • platform/Pasteboard.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/StaticPasteboard.h:
  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::writeCustomData):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::writeCustomData):

  • platform/gtk/PlatformPasteboardGtk.cpp:

(WebCore::PlatformPasteboard::write):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write):

Adjust this method to return the updated change count.

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::writeCustomData):

  • platform/libwpe/PlatformPasteboardLibWPE.cpp:

(WebCore::PlatformPasteboard::write):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):

Add logic to fall back to writing legacy pasteboard types in the case where there is only one item.

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeCustomData):

Source/WebKit:

Change more function and method signatures from const PasteboardCustomData& to
const Vector<PasteboardCustomData>&.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::writeCustomData):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::writeCustomData):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::writeCustomData):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Adjust some method signatures.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::writeCustomData):

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

REGRESSION(251087): Several API tests are failing
https://bugs.webkit.org/show_bug.cgi?id=202961

Reviewed by Brent Fulgham.

WebPageProxy::maybeInitializeSandboxExtensionHandle returns early if the WebContent process is currently launching,
since the audit token is needed to create the sandbox extension. The audit token will not be available until the
process has finished launching. In the same way, the method should return early if the WebContent process has
terminated.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

5:59 PM Changeset in webkit [251115] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[Mac] Update fast/text/font-cursive-italic-cjk-2.html for Catalina
https://bugs.webkit.org/show_bug.cgi?id=202779
<rdar://problem/54317204>

Unreviewed gardening.

  • platform/mac/TestExpectations:
5:47 PM Changeset in webkit [251114] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

results.webkit.org: TypeError when evaluating empty commits
https://bugs.webkit.org/show_bug.cgi?id=202936

Reviewed by Jonathan Bedard.

*resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js: Draw empty line when invaild scales or dots state pass in

5:34 PM Changeset in webkit [251113] by Alan Coon
  • 1 copy in tags/Safari-608.2.40.1.3

Tag Safari-608.2.40.1.3.

5:02 PM Changeset in webkit [251112] by Jonathan Bedard
  • 26 edits
    1 copy in trunk/Tools

Python 3: Add support in webkitpy.common.net.bugzilla
https://bugs.webkit.org/show_bug.cgi?id=202465

Reviewed by Dewei Zhu.

  • Scripts/test-webkitpy-python3: Add webkitpy.common.net.bugzilla to the test list.
  • Scripts/webkitpy/common/net/bugzilla/init.py: Use full import paths.
  • Scripts/webkitpy/common/net/bugzilla/attachment_unittest.py: Ditto.
  • Scripts/webkitpy/common/net/bugzilla/bug.py: Ditto.

(Bug.commit_revision): Dictionary sorting is no longer well defined in Python 3.

  • Scripts/webkitpy/common/net/bugzilla/bug_unittest.py: Use full import paths.
  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py: Ditto.

(EditUsersParser.login_userid_pairs_from_edit_user_results): Return list, not an iterator.
(EditUsersParser.user_dict_from_edit_user_page): HTML_ENTITIES is logically connected to BeautifulSoup, not
BeautifulStoneSoup.
(BugzillaQueries._parse_attachment_ids_request_query): Explicitly cast date_tag to unicode.
(Bugzilla._parse_attachment_element): Legacy BeautifulSoup and bs4 Elements have different function calls.
(Bugzilla._file_object_for_upload): Use BytesIO instead of StringIO.
(Bugzilla.create_bug):
(reopen_bug): Access map as list, not iterator.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: Use full import paths.
  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: Ditto.
  • Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py:

(TestExpectationUpdater._update_from_generic_attachment): Use items over iteritems().
(TestExpectationUpdater._update_from_platform_specific_attachment): Ditto.
(TestExpectationUpdater.do_update): Ditto.

  • Scripts/webkitpy/common/net/buildbot/buildbot.py: Use Python 2/3 compatible urllib.
  • Scripts/webkitpy/common/net/credentials.py: Use import statement to force autoinstall logic.
  • Scripts/webkitpy/common/net/file_uploader.py: Use Python 2/3 compatible urllib.

(FileUploader._upload_data.callback):
(FileUploader):

  • Scripts/webkitpy/common/net/resultsjsonparser.py:

(JSONTestResult._tokenize): Force map() call to return a list.

  • Scripts/webkitpy/common/net/web_mock.py: Use Python 2/3 compatible urllib.
  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller.install): Return True if install was required, otherwise, return False.

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

(MockFileSystem.init): Encode strings before writing them to the filesystem.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: Use Python 2/3 compatible urllib.
  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser): Use items over iteritems().

  • Scripts/webkitpy/layout_tests/models/test_failures.py: Use Python 3 compatible Pickle library.
  • Scripts/webkitpy/layout_tests/models/test_results.py: Ditto.
  • Scripts/webkitpy/port/darwin_testcase.py:

(DarwinTest.test_crashlog_path): Use dictionary for files.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Update directories excluded from testing.

  • Scripts/webkitpy/thirdparty/BeautifulSoup.py: Replaced.

(BeautifulSoup):Wrapper class making bs4 BeautifulSoup compatible with legacy BeautifulSoup calls.
(BeautifulStoneSoup): Ditto.

  • Scripts/webkitpy/thirdparty/BeautifulSoup_legacy.py: Copied from Tools/Scripts/webkitpy/thirdparty/BeautifulSoup.py.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.init): Accept executive.
(AutoinstallImportHook.find_module): Add beautifulsoup.
(AutoinstallImportHook._install_beautifulsoup): bs4 must be converted via 2to3 before use in Python 3.
(AutoinstallImportHook._install): Return result from installer.

  • Scripts/webkitpy/thirdparty/mock.py:

(Mock.reset_mock): Use values() instead of itervalues().

4:42 PM Changeset in webkit [251111] by commit-queue@webkit.org
  • 7 edits in trunk

FindController::findString always updates foundStringMatchIndex even if match is the same as before
https://bugs.webkit.org/show_bug.cgi?id=201775
<rdar://problem/55352425>

Patch by Matt Mokary <mmokary@apple.com> on 2019-10-14
Reviewed by Tim Horton.

Source/WebKit:

Allow an update to a find string without changing current match index, as is often the desired behavior when
modifying a query rather than moving forward or backward through a match set.

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

(toFindOptions):

  • UIProcess/API/Cocoa/_WKFindOptions.h:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::findString):
Do not change match index if NoIndexChange bit is set. Otherwise, no change in behavior.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFindString.mm:

(TestWebKitAPI::TEST):
_WKFindOptionsNoIndexChange test

4:38 PM Changeset in webkit [251110] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

Deploy smart pointers in RadioButtonGroups and RadioButtonGroup
https://bugs.webkit.org/show_bug.cgi?id=202942

Reviewed by Zalan Bujtas.

Use Ref & WeakPtr instead of raw pointers in RadioButtonGroups and RadioButtonGroup.

Also made RadioButtonGroups::m_nameToGroupMap a HashMap instead of a unique_ptr of HashMap
since RadioButtonGroups is lazily created in TreeScope as of r250708.

No new tests since there should be no observable behavioral change.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers const):

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroup): Use WeakHashSet and WeakPtr instead of raw pointers.
(WebCore::RadioButtonGroup::isEmpty const):
(WebCore::RadioButtonGroup::checkedButton const):
(WebCore::RadioButtonGroup::members const):
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::requiredStateChanged):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::setNeedsStyleRecalcForAllButtons):
(WebCore::RadioButtonGroup::updateValidityForAllButtons):
(WebCore::RadioButtonGroup::contains const):
(WebCore::RadioButtonGroups::addButton):
(WebCore::RadioButtonGroups::groupMembers const):
(WebCore::RadioButtonGroups::updateCheckedState):
(WebCore::RadioButtonGroups::requiredStateChanged):
(WebCore::RadioButtonGroups::checkedButtonForGroup const):
(WebCore::RadioButtonGroups::hasCheckedButton const):
(WebCore::RadioButtonGroups::isInRequiredGroup const):
(WebCore::RadioButtonGroups::removeButton):

  • dom/RadioButtonGroups.h:

(WebCore::RadioButtonGroups):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::radioButtonGroup const):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/HTMLInputElement.h:
4:33 PM Changeset in webkit [251109] by Chris Dumez
  • 2 edits
    1 add in trunk/LayoutTests

[ iOS13 ] Layout test imported/w3c/web-platform-tests/html/dom/idlharness.https.html is consistently Failing
https://bugs.webkit.org/show_bug.cgi?id=202960
<rdar://problem/56267775>

Unreviewed, unskip test and land new iOS baseline instead.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Added.
4:24 PM Changeset in webkit [251108] by david_quesada@apple.com
  • 7 edits in trunk/Source

Remove WebCore::IOSApplication::isWebApp()
https://bugs.webkit.org/show_bug.cgi?id=181259

Reviewed by Alex Christensen.

Source/WebCore:

As of iOS 11, the Web.app process no longer uses WebKit directly, so IOSApplication::isWebApp()
is never true. Since it's no longer needed, remove it.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isWebApp): Deleted.

Source/WebKit:

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):

Remove the wording "this is not supported as of right now", as it seems to be supported
since r247686, which added SPI on _WKWebsiteDataStoreConfiguration to set the application
cache directory.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebApplicationCache.mm:

(applicationCacheBundleIdentifier):

3:56 PM Changeset in webkit [251107] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

[ iOS13 ] Layout test imported/w3c/web-platform-tests/html/dom/idlharness.https.html is consistently Failing (202960)
https://bugs.webkit.org/show_bug.cgi?id=202960

Unreviewed Test Gardening.

  • platform/ios-wk2/TestExpectations: Changed expectation from Crash

to Failure for imported/w3c/web-platform-tests/html/dom/idlharness.https.html

3:52 PM Changeset in webkit [251106] by commit-queue@webkit.org
  • 39 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r251090.
https://bugs.webkit.org/show_bug.cgi?id=202959

"broke tests" (Requested by RMorisset on #webkit).

Reverted changeset:

"Split ArithProfile into a Unary and a Binary version"
https://bugs.webkit.org/show_bug.cgi?id=202832
https://trac.webkit.org/changeset/251090

3:50 PM Changeset in webkit [251105] by aestes@apple.com
  • 16 edits in trunk

REGRESSION (r243682): Quick Look previews loaded from the memory cache render with the wrong content type
https://bugs.webkit.org/show_bug.cgi?id=202935
<rdar://problem/54318133>

Reviewed by Tim Horton.

Source/WebCore:

When loading a Quick Look preview after deciding content policy, PreviewLoader would update
DocumentLoader with the preview response (the response that contains the preview's
Content-Type). It would not update the CachedResource representing the preview main
resource, however, which caches the underlying ResourceResponse in m_response.

When loading from the memory cache, it's the CachedResource's response that's used to
synthesize DocumentLoader::responseReceived. When loading Quick Look previews *before*
deciding content policy, this response would be the preview response, but as described
above, when loading after deciding content policy it's the underlying response.

This patch updates a Quick Look preview's CachedResource with the preview response along
with updating DocumentLoader so that there is not a mismatch between the resource's content
type and its underlying data.

Added a new API test.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::previewResponseReceived):

  • loader/DocumentLoader.h:
  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::didReceivePreviewResponse):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceivePreviewResponse):

  • loader/SubresourceLoader.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::previewResponseReceived):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedRawResourceClient.h:

(WebCore::CachedRawResourceClient::previewResponseReceived):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::previewResponseReceived):

  • loader/cache/CachedResource.h:
  • loader/ios/PreviewLoader.mm:

(-[WebPreviewLoader _loadPreviewIfNeeded]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyGoBack]):
(-[WKWebView synchronouslyGoForward]):

3:50 PM Changeset in webkit [251104] by Alan Coon
  • 7 edits in tags/Safari-609.1.6.1/Source

Versioning.

3:46 PM Changeset in webkit [251103] by Alan Coon
  • 1 copy in tags/Safari-609.1.6.1

New tag.

3:29 PM Changeset in webkit [251102] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r250991): Sources: local resource overrides should be enabled when not in tests
https://bugs.webkit.org/show_bug.cgi?id=202944

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager):

3:14 PM Changeset in webkit [251101] by youenn@apple.com
  • 3 edits
    3 adds in trunk

A response body promise should be rejected in case of a failure happening after the HTTP response
https://bugs.webkit.org/show_bug.cgi?id=202792

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-error-worker.js: Added.

(doTest):

  • web-platform-tests/service-workers/service-worker/fetch-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-error.https.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/service-workers/service-worker/fetch-error.https.html

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didFail):
Propagate error to fetch body consumer if any.

2:52 PM Changeset in webkit [251100] by Wenson Hsieh
  • 31 edits
    3 adds in trunk/Source

[Clipboard API] Support writing multiple PasteboardCustomData with SharedBuffers to the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=202851

Reviewed by Darin Adler.

Source/WebCore:

This patch refactors some logic around WebCore::PasteboardCustomData, in preparation for implementing the async
clipboard API. There are two main goals of this refactoring:

  1. Enable writing multiple items (each backed by PasteboardCustomData) to the platform pasteboard.
  2. Enable writing platform data in the form of SharedBuffers to the platform pasteboard.

See below for more details; no tests, as there is no change in behavior yet.

  • Headers.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Move PasteboardCustomData out of Pasteboard.h and into its own file.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::commitToPasteboard):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::getPasteboardTypesAndDataForAttachment):

  • platform/Pasteboard.cpp:

(WebCore::PasteboardCustomData::createSharedBuffer const): Deleted.
(WebCore::PasteboardCustomData::fromSharedBuffer): Deleted.

Moved these method implementations to PasteboardCustomData.cpp.

  • platform/Pasteboard.h:

Refactor PasteboardCustomData so that its member variables are now private, and encapsulated behind methods
Additionally, make it so that the only way to set data on PasteboardCustomData is to use the writeString,
writeData, and writeStringInCustomData methods, which ensure that the PasteboardCustomData is always in a
consistent state.

  • platform/PasteboardCustomData.cpp: Added.

(WebCore::copyPlatformData):
(WebCore::PasteboardCustomData::Entry::Entry):
(WebCore::PasteboardCustomData::Entry::operator=):

Refactor the implementation of PasteboardCustomData, so that it contains a list of PasteboardCustomData entries
instead of individual Vectors and HashMaps.

(WebCore::PasteboardCustomData::PasteboardCustomData):
(WebCore::PasteboardCustomData::createSharedBuffer const):
(WebCore::PasteboardCustomData::fromSharedBuffer):
(WebCore::PasteboardCustomData::writeString):
(WebCore::PasteboardCustomData::writeData):
(WebCore::PasteboardCustomData::writeStringInCustomData):
(WebCore::PasteboardCustomData::addOrMoveEntryToEnd):

Move logic from StaticPasteboard into PasteboardCustomData, and refactor these methods to handle
Vector<PasteboardCustomData::Entry>.

(WebCore::PasteboardCustomData::clear):
(WebCore::PasteboardCustomData::operator=):
(WebCore::PasteboardCustomData::orderedTypes const):
(WebCore::PasteboardCustomData::hasData const):
(WebCore::PasteboardCustomData::hasSameOriginCustomData const):
(WebCore::PasteboardCustomData::sameOriginCustomStringData const):
(WebCore::PasteboardCustomData::readBuffer const):
(WebCore::PasteboardCustomData::readString const):
(WebCore::PasteboardCustomData::readStringInCustomData const):
(WebCore::PasteboardCustomData::forEachType const):
(WebCore::PasteboardCustomData::forEachPlatformString const):
(WebCore::PasteboardCustomData::forEachCustomString const):
(WebCore::PasteboardCustomData::forEachPlatformStringOrBuffer const):

Moved these method implementations from StaticPasteboard to PasteboardCustomData, and also introduced some new
methods to help iterate through types and data.

  • platform/PasteboardCustomData.h: Added.

(WebCore::PasteboardCustomData::origin const):
(WebCore::PasteboardCustomData::setOrigin):
(WebCore::PasteboardCustomData::data const):

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::decoder const):

  • platform/SharedBuffer.h:
  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::hasData):
(WebCore::StaticPasteboard::typesSafeForBindings):
(WebCore::StaticPasteboard::typesForLegacyUnsafeBindings):
(WebCore::StaticPasteboard::readString):
(WebCore::StaticPasteboard::readStringInCustomData):
(WebCore::StaticPasteboard::writeString):
(WebCore::StaticPasteboard::writeData):
(WebCore::StaticPasteboard::writeStringInCustomData):
(WebCore::StaticPasteboard::clear):
(WebCore::StaticPasteboard::takeCustomData):
(WebCore::StaticPasteboard::StaticPasteboard): Deleted.

Refactor StaticPasteboard to now contain a PasteboardCustomData; additionally, adjust several methods in
StaticPasteboard to simply call into PasteboardCustomData to write, read, or clear data.

(WebCore::updateTypes): Deleted.

  • platform/StaticPasteboard.h:
  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::readStringInCustomData):
(WebCore::Pasteboard::readOrigin):
(WebCore::PasteboardCustomData::cocoaType): Deleted.

Moved the implementation of PasteboardCustomData::cocoaType from PasteboardCocoa.mm to
PasteboardCustomDataCocoa.mm.

  • platform/cocoa/PasteboardCustomDataCocoa.mm: Added.

(WebCore::PasteboardCustomData::cocoaType):

  • platform/ios/AbstractPasteboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::changeCount const):
(WebCore::registerItemsToPasteboard):
(WebCore::registerItemToPasteboard):
(WebCore::PlatformPasteboard::write):

Support writing multiple PasteboardCustomData objects to the platform pasteboard on iOS, by generating
NSItemProviders for each one. This refactors the existing registerItemToPasteboard helper to handle multiple
registration lists, renames it to registerItemsToPasteboard (plural), and then reimplements
registerItemToPasteboard in terms of registerItemsToPasteboard.

(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::createItemProviderRegistrationList):

Adjust these to use getters on PasteboardCustomData instead of accessing the member variables directly.

  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderPasteboard init]):
(-[WebItemProviderPasteboard stageRegistrationLists:]):
(-[WebItemProviderPasteboard clearRegistrationLists]):
(-[WebItemProviderPasteboard takeRegistrationLists]):

Refactor registration list staging on WebItemProviderPasteboard to support multiple registration lists, each
representing a single item provider.

(-[WebItemProviderPasteboard stageRegistrationList:]): Deleted.
(-[WebItemProviderPasteboard takeRegistrationList]): Deleted.

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

  • platform/mac/PasteboardWriter.mm:

(WebCore::createPasteboardWriter):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::write):

Support writing multiple PasteboardCustomData objects to the platform pasteboard on macOS, by creating and
setting NSPasteboardItems for each custom data. This means that instead of using legacy macOS pasteboard types,
we need to use the "modern" NSPasteboardTypes when writing each item. This is because NSPasteboardItem quietly
fails when attempting to set data for a legacy pasteboard type.

(WebCore::createPasteboardItem):

Source/WebKit:

See WebCore ChangeLog for more details.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PasteboardCustomData::Entry>::encode):
(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):

Add helpers to encode and decode PasteboardCustomData::Entry.

(IPC::ArgumentCoder<PasteboardCustomData>::encode):
(IPC::ArgumentCoder<PasteboardCustomData>::decode):

  • Shared/WebCoreArgumentCoders.h:

Add support for encoding and decoding PasteboardCustomData by encoding and decoding each of its items (see
above).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestDOMPasteAccess):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):
(allPasteboardItemOriginsMatchOrigin):
(-[WKContentView _didHandleAdditionalDragItemsRequest:]):

Tweak several methods to use the new methods on PasteboardCustomData instead of accessing the member variables
directly.

(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _prepareToDragPromisedAttachment:]):
(-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationLists:stagedDragSource:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
(-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): Deleted.

Adjust these methods to handle multiple staged item providers (for now, it remains that iOS drag and drop
codepaths will still only write a single item to the pasteboard).

Source/WebKitLegacy/mac:

See WebCore ChangeLog for more details.

  • WebCoreSupport/WebPlatformStrategies.h:
2:42 PM Changeset in webkit [251099] by Alan Coon
  • 7 edits in tags/Safari-609.1.7/Source

Versioning.

2:16 PM Changeset in webkit [251098] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Mass Marking failing tests on Windows

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:15 PM Changeset in webkit [251097] by Truitt Savell
  • 2 edits in trunk

Unreviewed, rolling out r251081.

Broke macOS and iOS builds

Reverted changeset:

"transform-box: content-box, stroke-box missing"
https://bugs.webkit.org/show_bug.cgi?id=201892
https://trac.webkit.org/changeset/251081

2:14 PM Changeset in webkit [251096] by Keith Rollin
  • 2 edits in trunk/Source/WTF

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

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 Devin Rousso was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

  • wtf/Platform.h:
2:05 PM Changeset in webkit [251095] by Alan Coon
  • 1 copy in tags/Safari-609.1.7

Tag Safari-609.1.7.

2:05 PM Changeset in webkit [251094] by dino@apple.com
  • 4 edits in trunk

Reset maxCanvasPixelMemory between tests
https://bugs.webkit.org/show_bug.cgi?id=202941
<rdar://problem/56260865>

Reviewed by Wenson Hsieh.

Source/WebCore:

Reset the maximum canvas memory between tests.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

LayoutTests:

Swap the order of the tests, because a previous test might have
already allocated canvas memory that is sitting around.

  • fast/canvas/canvas-too-large-to-draw.html:
2:00 PM Changeset in webkit [251093] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

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

Unreviewed.

Addressing post-review comment.

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createSystemUIFont):

1:52 PM Changeset in webkit [251092] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[Mac] Update fast/text/font-cursive-italic-cjk-2.html for Catalina
https://bugs.webkit.org/show_bug.cgi?id=202779
<rdar://problem/54317204>

Reviewed by Alexey Proskuryakov.

The platform-specific generic font family mappings changed. Luckily, we already had a (skipped) test that tests the new mappings.

  • platform/mac/TestExpectations:
1:43 PM Changeset in webkit [251091] by Alan Coon
  • 8 edits
    2 copies
    2 adds in branches/safari-608.2.40.1-branch

Cherry-pick r251086. rdar://problem/56237426

[Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari
https://bugs.webkit.org/show_bug.cgi?id=202262

Reviewed by Tim Horton.

Source/WebKit:

r250640 didn't go far enough. We need to apply the same fix everywhere [NSFontDescriptor fontDescriptorWithFontAttributes:] is called.

  • Shared/Cocoa/ArgumentCodersCocoa.mm: (IPC::decodeFontInternal):
  • Shared/Cocoa/CoreTextHelpers.h: Added.
  • Shared/Cocoa/CoreTextHelpers.mm: Added. (fontDescriptorWithFontAttributes):
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateFontManagerIfNeeded):
  • UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu):
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • fast/forms/contenteditable-font-optical-size-expected.txt: Added.
  • fast/forms/contenteditable-font-optical-size.html: Added.

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

1:28 PM Changeset in webkit [251090] by rmorisset@apple.com
  • 39 edits in trunk/Source/JavaScriptCore

Split ArithProfile into a Unary and a Binary version
https://bugs.webkit.org/show_bug.cgi?id=202832

Reviewed by Keith Miller.

ArithProfile was for a long time only used for add/sub/mul/div, but recently it started being used for negate. And it will soon also have to be used for inc and dec due to BigInt.
So in this patch I make a separate version that only has the data for a single argument, and thus takes half as much memory.

  • bytecode/ArithProfile.cpp:

(JSC::ArithProfile<BitfieldType>::emitObserveResult):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetDouble const):
(JSC::ArithProfile<BitfieldType>::emitSetDouble const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt const):
(WTF::printInternal):

  • bytecode/ArithProfile.h:

(JSC::ArithProfile::didObserveNonInt32 const):
(JSC::ArithProfile::didObserveDouble const):
(JSC::ArithProfile::didObserveNonNegZeroDouble const):
(JSC::ArithProfile::didObserveNegZeroDouble const):
(JSC::ArithProfile::didObserveNonNumeric const):
(JSC::ArithProfile::didObserveBigInt const):
(JSC::ArithProfile::didObserveInt32Overflow const):
(JSC::ArithProfile::didObserveInt52Overflow const):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumeric):
(JSC::ArithProfile::setObservedBigInt):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::observeResult):
(JSC::ArithProfile::addressOfBits const):
(JSC::ArithProfile::bits const):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::hasBits const):
(JSC::ArithProfile::setBit):
(JSC::UnaryArithProfile::UnaryArithProfile):
(JSC::UnaryArithProfile::observedIntBits):
(JSC::UnaryArithProfile::observedNumberBits):
(JSC::UnaryArithProfile::argResultType const):
(JSC::UnaryArithProfile::argObservedType const):
(JSC::UnaryArithProfile::setArgObservedType):
(JSC::UnaryArithProfile::argSawInt32):
(JSC::UnaryArithProfile::argSawNumber):
(JSC::UnaryArithProfile::argSawNonNumber):
(JSC::UnaryArithProfile::observeArg):
(JSC::UnaryArithProfile::isObservedTypeEmpty):
(JSC::BinaryArithProfile::BinaryArithProfile):
(JSC::BinaryArithProfile::observedIntIntBits):
(JSC::BinaryArithProfile::observedNumberIntBits):
(JSC::BinaryArithProfile::observedIntNumberBits):
(JSC::BinaryArithProfile::observedNumberNumberBits):
(JSC::BinaryArithProfile::observeLHS):
(JSC::BinaryArithProfile::observeLHSAndRHS):
(JSC::BinaryArithProfile::isObservedTypeEmpty):

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::binaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::unaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addMathIC):

  • bytecode/Fits.h:
  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::reportValue):

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::UnaryOpNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):

  • jit/JIT.h:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_negate):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITMathIC.h:

(JSC::JITMathIC::JITMathIC):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::arithProfile const):
(JSC::isBinaryProfileEmpty):
(JSC::JITBinaryMathIC::JITBinaryMathIC):
(JSC::isUnaryProfileEmpty):
(JSC::JITUnaryMathIC::JITUnaryMathIC):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:
  • jit/JITNegGenerator.cpp:

(JSC::JITNegGenerator::generateInline):
(JSC::JITNegGenerator::generateFastPath):

  • jit/JITNegGenerator.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

(JSC::updateArithProfileForUnaryArithOp):
(JSC::updateArithProfileForBinaryArithOp):
(JSC::SLOW_PATH_DECL):

1:25 PM Changeset in webkit [251089] by achristensen@apple.com
  • 6 edits in trunk

REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing
https://bugs.webkit.org/show_bug.cgi?id=201902

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • Modules/webauthn/fido/U2fResponseConverter.cpp:

(fido::WebCore::createAttestedCredentialDataFromU2fRegisterResponse):

Source/WTF:

  • wtf/Vector.h:

The code introduced in r108153 to workaround a warning when building Chrome was causing us to use uninitialized memory
when we create a Vector with the size_t/{signed,unsigned}char constructor with a constexpr size_t.
This was the cause of bug 201902 and bug 201620 which only manifested themselves in release builds with some compilers.

Tools:

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

12:54 PM Changeset in webkit [251088] 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:
12:50 PM Changeset in webkit [251087] by pvollan@apple.com
  • 10 edits in trunk/Source

[macOS] Sandbox extensions should be created with audit tokens, not PIDs
https://bugs.webkit.org/show_bug.cgi?id=201828

Reviewed by Brent Fulgham.

Source/WebKit:

Stop issuing mach/read sandbox extensions by PID in the UI process, and use audit tokens instead.
The audit tokens for the WebContent processes are retrieved from the IPC connection to the process.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::create):
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtensionImpl::SandboxExtensionImpl):
(WebKit::SandboxExtension::createHandleForMachLookupByAuditToken):
(WebKit::SandboxExtension::createHandleForReadByAuditToken):
(WebKit::SandboxExtension::createHandleForMachLookupByPid): Deleted.
(WebKit::SandboxExtension::createHandleForReadByPid): Deleted.

  • Shared/SandboxExtension.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldSendPendingMessage):
(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

Source/WTF:

Remove HAVE macro for issuing sandbox extension by PID, and fix version checks for the HAVE
macros related to issuing sandbox extensions by audit token. Remove SPI for creating
extensions by PID, and add SPI for creating mach extension by audit token. Also remove an
unneeded flag.

  • wtf/Platform.h:
  • wtf/spi/darwin/SandboxSPI.h:
12:42 PM Changeset in webkit [251086] by mmaxfield@apple.com
  • 8 edits
    2 copies
    2 adds in trunk

[Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari
https://bugs.webkit.org/show_bug.cgi?id=202262

Reviewed by Tim Horton.

Source/WebKit:

r250640 didn't go far enough. We need to apply the same fix everywhere [NSFontDescriptor fontDescriptorWithFontAttributes:] is called.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeFontInternal):

  • Shared/Cocoa/CoreTextHelpers.h: Added.
  • Shared/Cocoa/CoreTextHelpers.mm: Added.

(fontDescriptorWithFontAttributes):

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • fast/forms/contenteditable-font-optical-size-expected.txt: Added.
  • fast/forms/contenteditable-font-optical-size.html: Added.
12:11 PM Changeset in webkit [251085] by sbarati@apple.com
  • 11 edits
    1 add in trunk

Canonicalize how we prepare the prototype chain for inline caching
https://bugs.webkit.org/show_bug.cgi?id=202827
<rdar://problem/56193919>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/cache-correct-offset-after-flattening.js: Added.

(assert):

Source/JavaScriptCore:

This patch canonicalizes how we prepare the prototype chain for caching. Both
in the poly proto chain, and the generateConditions*, we were flattening
dictionaries as we walk the prototype chain. We now unify that into one
function called preparePrototypeChainForCaching. In that, we flatten
dictionaries as we traverse the prototype chain, and note if any objects
are poly proto.

My patch in r250540 made it so we now flatten uncacheable dictionaries (this
was the intention all along, but it was a perf bug that we didn't do this). That
revealed that the inline caching code could use a stale PropertyOffset when
flattening an uncacheable dictionary. This patch makes it so we universally
try just defer caching to later if we encounter a situation where we flatten
a dictionary that could be a property holder.

  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
(JSC::generateConditionsForPropertyMissConcurrently):
(JSC::generateConditionsForPropertySetterMissConcurrently):
(JSC::preparePrototypeChainForCaching):

  • bytecode/ObjectPropertyConditionSet.h:
  • bytecode/PolyProtoAccessChain.cpp:

(JSC::PolyProtoAccessChain::create):

  • bytecode/PolyProtoAccessChain.h:

(JSC::PolyProtoAccessChain::slotBaseStructure const):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

Tools:

  • Scripts/run-jsc-stress-tests:
11:18 AM Changeset in webkit [251084] by russell_e@apple.com
  • 13 edits
    2 deletes in trunk

Unreviewed, rolling out r251081.

Broke macOS and iOS builds.

Reverted changeset:

"transform-box: content-box, stroke-box missing"
https://bugs.webkit.org/show_bug.cgi?id=201892
https://trac.webkit.org/changeset/251081

10:39 AM Changeset in webkit [251083] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

[ Mac ] REGRESSION (r243033) Assertion failed: m_logger Layout Test imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=196517
<rdar://problem/49540704>

Unreviewed, unskipping a passing test.

  • platform/mac/TestExpectations: Unskip MediaStreamTrack-contentHint.html.
10:29 AM Changeset in webkit [251082] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Remove expectations for fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html
<rdar://problem/52699318>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:23 AM Changeset in webkit [251081] by Nikolas Zimmermann
  • 13 edits
    2 adds in trunk

transform-box: content-box, stroke-box missing
https://bugs.webkit.org/show_bug.cgi?id=201892

Patch by Dirk Schulze <krit@webkit.org> on 2019-10-14
Reviewed by Simon Fraser.

Source/WebCore:

Added the keywords content-box and stroke-box to the
transform-box CSS property.
Those keywords were added to the spec after the implementation
in WebKit.

Test: transforms/transform-box.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TransformBox const):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderLayer.cpp:

(WebCore::computeReferenceBox):
(WebCore::transformBoxToCSSBoxType):
(WebCore::RenderLayer::currentTransform const):

  • rendering/style/RenderStyleConstants.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

LayoutTests:

  • fast/css/transform-box-parsing.html:
  • svg/transforms/svg-transform-box-expected.html:
  • svg/transforms/svg-transform-box.html:
  • transforms/transform-box-expected.html: Added.
  • transforms/transform-box.html: Added.
10:16 AM Changeset in webkit [251080] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

10:11 AM Changeset in webkit [251079] by Alan Coon
  • 2 edits in branches/safari-608.2.40.1-branch/Source/WebKit

Cherry-pick r250197. rdar://problem/55611999

Fix an assertion failure introduced in r250186.

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Corrected the assertion.

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

10:11 AM Changeset in webkit [251078] by Alan Coon
  • 4 edits in branches/safari-608.2.40.1-branch/Source/WebKit

Cherry-pick r250186. rdar://problem/55611999

Safari 13 may launch leftover 32-bit plug-in process from Safari 12’s WebKit, which crashes
https://bugs.webkit.org/show_bug.cgi?id=202077
<rdar://problem/55547063>

Reviewed by Sam Weinig.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getPluginArchitecture): Removed support for i386 plug-ins.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::serviceName): Assert that the requested process type is not Plugin32.
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Assert that the plug-in architecture is x86_64.

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

10:10 AM Changeset in webkit [251077] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

9:56 AM Changeset in webkit [251076] by Nikolas Zimmermann
  • 2 edits in trunk/Tools

Update my nickname.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:42 AM Changeset in webkit [251075] by Nikolas Zimmermann
  • 2 edits in trunk/Tools

Fix Tools/Scripts/update-webkitgtk-libs build failure in 'gst-plugins-bad'
https://bugs.webkit.org/show_bug.cgi?id=202931

Reviewed by Philippe Normand.

OpenEXR dependency is not required and causes a build failure on Ubuntu
19.04 with OpenEXR 2.2.1, as described here:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1089

  • gstreamer/jhbuild.modules: Disable openexr in meson build options.
9:05 AM Changeset in webkit [251074] by Truitt Savell
  • 11 edits in trunk/Source

Unreviewed, rolling out r251045.

Broke internal builds

Reverted changeset:

"AX: Make AXIsolatedTree compile again"
https://bugs.webkit.org/show_bug.cgi?id=202702
https://trac.webkit.org/changeset/251045

8:37 AM Changeset in webkit [251073] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Reuse existing web processes for running service workers
https://bugs.webkit.org/show_bug.cgi?id=202195

Unreviewed.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::disableServiceWorkers):
(WebKit::WebProcessProxy::enableServiceWorkers):
Fix case where ENABLE_SERVICE_WORKER is not defined.

8:21 AM Changeset in webkit [251072] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Make recent=False more usable
https://bugs.webkit.org/show_bug.cgi?id=202873

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/model/configuration_context.py:

(ConfigurationContext.search_for_configuration): If no configuration is specified,
use a set of configurations defined by recent platform.

  • resultsdbpy/resultsdbpy/model/configuration_context_unittest.py:

(ConfigurationContextTest.test_expired_configurations): Test that recent=False works.

7:00 AM Changeset in webkit [251071] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Skip memcpy-typed-loop timing out on ARMv7 pending investigation
https://bugs.webkit.org/show_bug.cgi?id=202923

Patch by Paulo Matos <Paulo Matos> on 2019-10-14
Reviewed by Adrian Perez de Castro.

  • microbenchmarks/memcpy-typed-loop.js:
4:32 AM Changeset in webkit [251070] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/LayoutTests

Replace reftest scripts-height.html with script tests
https://bugs.webkit.org/show_bug.cgi?id=159423

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-14
Reviewed by Frédéric Wang.

Remove the expected result as well.

  • mathml/presentation/scripts-height-expected.html: Removed.
2:21 AM Changeset in webkit [251069] by Philippe Normand
  • 3 edits in trunk/Source/WebKit

[GTK][WebInspector] Support for saving data
https://bugs.webkit.org/show_bug.cgi?id=202894

Reviewed by Carlos Garcia Campos.

Implement the WebInspectorProxy::platformSave() method. This
allows users to save the inspector performance measurements, for
instance.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave):

  • WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canSave):

1:42 AM Changeset in webkit [251068] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

Unreviewed, set Adrian Perez de Castro as WebKit Reviewer

  • Scripts/webkitpy/common/config/contributors.json:
12:54 AM Changeset in webkit [251067] by youenn@apple.com
  • 44 edits
    3 adds in trunk

Reuse existing web processes for running service workers
https://bugs.webkit.org/show_bug.cgi?id=202195

Reviewed by Chris Dumez.

Source/WebCore:

Update implementation to be able to run service workers jointly with page.
Add internals API to get the process ID.
This allows writing tests to check whether a service worker is in the same process as its client or not.

Test: http/wpt/service-workers/service-worker-different-process.https.html

  • testing/Internals.cpp:

(WebCore::Internals::processIdentifier const):

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

(WebCore::ServiceWorkerInternals::processIdentifier const):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::registerServiceWorkerClients):
Do not register dummy documents whose sole purpose is to do loading for service workers.

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::setConnection):
Now that connections might be created more than once on a given process,
Make sure that the replaced connection is stopped or there is no replaced connection.
(WebCore::SWContextManager::stopAllServiceWorkers):
Add routine to stop all service workers running in a given web process.

  • workers/service/context/SWContextManager.h:

(WebCore::SWContextManager::Connection::isClosed const):
(WebCore::SWContextManager::Connection::setAsClosed):

Source/WebKit:

When network process asks for a service worker context connection,
we now iterate through existing web processes and reuse one if both session
and registrable domain match.
We then ask the web process to create a context connection to the network process.

When network process no longer needs the connection, it instructs the UIProcess
that will update its state so that the web process is no longer considered as running
service workers.
UIProcess then instructs the web process to stop its service workers and its connection.

Later on, the same web process may be reused for running service workers in which case
a new connection will replace the stopped connection.

Similarly, on network process crash, all web process running service workers are updated
so that they are no longer considered as running service workers.

Add a boolean state to WebProcessPool to control whether creating a separate service worker process.

We no longer terminate the web process when stopping service workers or when network process crash.
We use the enableTermination/disableTermination at context connection start/stop time.
We consider that the context connection is similar to running a page in the process and creating/removing a page
calls disableTermination/enableTermination.

NetworkProcess is handling the management of service worker processes by checking for clients.
In case there is no client, the process is terminated.
This removes the need for the WebProcessPool service worker process timer.
This patch removes this timer.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
(WebKit::NetworkConnectionToWebProcess::closeSWContextConnection):
(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::messageSenderConnection const):
(WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded):
(WebKit::WebSWServerToContextConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetUseSeparateServiceWorkerProcess):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setUseSeparateServiceWorkerProcess:]):
(-[WKProcessPool _webPageContentProcessCount]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::workerContextConnectionNoLongerNeeded):

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

(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::removeFromServiceWorkerProcesses):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::terminateNetworkProcess):
(WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess):

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

(WebKit::WebProcessProxy::createForServiceWorkers):
(WebKit::WebProcessProxy::canTerminateAuxiliaryProcess):
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
(WebKit::WebProcessProxy::disableServiceWorkers):
(WebKit::WebProcessProxy::enableServiceWorkers):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isMatchingRegistrableDomain const):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::terminateWorker):
(WebKit::WebSWContextManagerConnection::syncTerminateWorker):
(WebKit::WebSWContextManagerConnection::close):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::registerServiceWorkerClients):

Tools:

Add support for enforcing a separate process for service workers.
This is useful for tests trying to crash the service worker process.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

Update test to use serviceWorkerProcessCount.
Add test to check for in process and out of process service workers.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setUseSeparateServiceWorkerProcess):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/workers/service/resources/postmessage-after-sw-process-crash.js:

(async.doTest):

  • http/tests/workers/service/resources/postmessage-after-terminate.js:

(async.doTest):

  • http/tests/workers/service/resources/postmessage-after-terminating-hung-worker.js:

(async.doTest):

  • http/wpt/service-workers/online.https.html:
  • http/wpt/service-workers/service-worker-different-process.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-different-process.https.html: Added.
  • http/wpt/service-workers/service-worker-process-worker.js: Added.

Oct 13, 2019:

11:07 PM Changeset in webkit [251066] by Alan Coon
  • 5 edits
    2 adds in branches/safari-608.2.40.1-branch

Cherry-pick r250640. rdar://problem/56237430

REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari
https://bugs.webkit.org/show_bug.cgi?id=202198

Reviewed by Tim Horton.

Source/WebKit:

NSFont has a bug where passing "auto" to kCTFontOpticalSizeAttribute
causes an exception to be thrown. We don't catch the exception, so we
pop up back to the runloop, which confuses the UI process.

The solution is twofold: 1) Workaround the bug by passing the font size
to kCTFontOpticalSizeAttribute instead, and 2) catch any exceptions that
this part of the code might throw.

  • UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu):

Source/WTF:

  • wtf/Platform.h:

LayoutTests:

  • fast/forms/select-font-optical-size-expected.txt: Added.
  • fast/forms/select-font-optical-size.html: Added.

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

11:03 PM Changeset in webkit [251065] by Alan Coon
  • 7 edits in branches/safari-608.2.40.1-branch/Source

Versioning.

10:04 PM Changeset in webkit [251064] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Stop 'using namespace *Names' in files generated by make_names.pl
https://bugs.webkit.org/show_bug.cgi?id=202907

Reviewed by Geoffrey Garen.

  • dom/make_names.pl:

(printFunctionTable):
(printFactoryCppFile):
(printWrapperFactoryCppFile):
Stop 'using namespace SVGNames' and 'using namepace HTMLNames' in
files generated by make_names.pl. Just use fully-qualified names.

There is some overlap between the two namespaces, so this is a
prerequsite for doing more aggressive unified source bundling in bindings.

5:05 PM Changeset in webkit [251063] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Don't include ApplicationServices in npapi.h
https://bugs.webkit.org/show_bug.cgi?id=202911

Reviewed by Sam Weinig.

  • plugins/npapi.h:

Just include CoreGraphics.h, not ApplicationServices.h.
ApplicationServices.h pulls in all sorts of crazy things like
QuickDraw headers that have symbol conflicts with JSC (like Handle).

4:49 PM Changeset in webkit [251062] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

Wincairo build broken: EventLoop.h: No such file or directory
https://bugs.webkit.org/show_bug.cgi?id=202893

Reviewed by Fujii Hironori.

Remove include of EventLoop.h.

  • platform/network/curl/SynchronousLoaderClientCurl.cpp:
12:25 PM Changeset in webkit [251061] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

Fix compilation of Crypto.cpp on macOS with !WEB_CRYPTO
https://bugs.webkit.org/show_bug.cgi?id=202895

Reviewed by Alexey Proskuryakov.

Crypto.cpp does not use getCommonCryptoDigestAlgorithm(), defined in
CommonCryptoUtilities.h, but requires CommonCrypto includes which are
coming with it. However, when WEB_CRYPTO is disabled necessary
transitive includes are missing.

  • page/Crypto.cpp:
10:08 AM Changeset in webkit [251060] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Convert ENinePieceImageRule into an enum class and rename
https://bugs.webkit.org/show_bug.cgi?id=202889

Reviewed by Alex Christensen.

Enum classify ENinePieceImageRule.

The bitfield in NinePieceImage isn't saving anything so don't use one there.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForRepeatRule):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):

  • css/StyleBuilderCustom.h:

(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::NinePieceImage):
(WebCore::NinePieceImage::computeMiddleTileScale):
(WebCore::NinePieceImage::computeTileScales):
(WebCore::NinePieceImage::Data::Data):
(WebCore::NinePieceImage::Data::create):

  • rendering/style/NinePieceImage.h:

(WebCore::NinePieceImage::horizontalRule const):
(WebCore::NinePieceImage::setHorizontalRule):
(WebCore::NinePieceImage::verticalRule const):
(WebCore::NinePieceImage::setVerticalRule):

9:23 AM Changeset in webkit [251059] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Clarify the naming of the radius-related functions on BorderData
https://bugs.webkit.org/show_bug.cgi?id=202888

Reviewed by Alex Christensen.

BorderData had some confusingly named data members and functions ("topLeft"'"). Renamed
to include the term "radius".

  • platform/graphics/PathUtilities.cpp:

(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):

  • rendering/style/BorderData.h:

(WebCore::BorderData::BorderData):
(WebCore::BorderData::hasBorderRadius const):
(WebCore::BorderData::operator== const):
(WebCore::BorderData::topLeftRadius const):
(WebCore::BorderData::topRightRadius const):
(WebCore::BorderData::bottomLeftRadius const):
(WebCore::BorderData::bottomRightRadius const):
(WebCore::BorderData::topLeft const): Deleted.
(WebCore::BorderData::topRight const): Deleted.
(WebCore::BorderData::bottomLeft const): Deleted.
(WebCore::BorderData::bottomRight const): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::calcRadiiFor):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::borderTopLeftRadius const):
(WebCore::RenderStyle::borderTopRightRadius const):
(WebCore::RenderStyle::borderBottomLeftRadius const):
(WebCore::RenderStyle::borderBottomRightRadius const):
(WebCore::RenderStyle::resetBorderTopLeftRadius):
(WebCore::RenderStyle::resetBorderTopRightRadius):
(WebCore::RenderStyle::resetBorderBottomLeftRadius):
(WebCore::RenderStyle::resetBorderBottomRightRadius):
(WebCore::RenderStyle::setBorderTopLeftRadius):
(WebCore::RenderStyle::setBorderTopRightRadius):
(WebCore::RenderStyle::setBorderBottomLeftRadius):
(WebCore::RenderStyle::setBorderBottomRightRadius):

9:02 AM Changeset in webkit [251058] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

Convert LineBoxContain to use an OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=202890

Reviewed by Alex Christensen.

Use OptionSet<LineBoxContain>.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createLineBoxContainValue):

  • css/CSSLineBoxContainValue.cpp:

(WebCore::CSSLineBoxContainValue::CSSLineBoxContainValue):
(WebCore::CSSLineBoxContainValue::customCSSText const):

  • css/CSSLineBoxContainValue.h:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLineBoxContain):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeLineBoxContain):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::minLineHeightForReplacedRenderer const):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::ascentAndDescentForBox const):
(WebCore::RootInlineBox::includeLeadingForBox const):
(WebCore::RootInlineBox::includeFontForBox const):
(WebCore::RootInlineBox::includeGlyphsForBox const):
(WebCore::RootInlineBox::includeInitialLetterForBox const):
(WebCore::RootInlineBox::includeMarginForBox const):
(WebCore::RootInlineBox::fitsToGlyphs const):
(WebCore::RootInlineBox::includesRootLineBoxFontOrLeading const):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForFontAndText):
(WebCore::SimpleLineLayout::canUseForStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::lineBoxContain const):
(WebCore::RenderStyle::setLineBoxContain):
(WebCore::RenderStyle::initialLineBoxContain):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):

  • rendering/style/StyleRareInheritedData.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

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):

Note: See TracTimeline for information about the timeline view.