Timeline
Feb 21, 2020:
- 7:43 PM Changeset in webkit [257185] by
-
- 49 edits5 adds in trunk
App-bound domains should have separate Network Sessions
https://bugs.webkit.org/show_bug.cgi?id=208026
<rdar://problem/59434006>
Reviewed by Brent Fulgham.
Source/WebKit:
Tests: http/tests/in-app-browser-privacy/app-bound-domain.html
http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html
Supports network session switching for navigations to app-bound
domains. This requires updating the WebPage when a navigation occurs
to check whether it is to an app-bound destination. In case of a
process swap, this has to be done both in PolicyDecisionSender and
in the ProvisionalPageProxy::loadData and ProvisionalPageProxy::loadRequest
functions.
This patch also must send the In-App Browser privacy flag to the
Network process.
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
- NetworkProcess/NetworkLoadParameters.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
Passes the isNavigatingToAppBoundDomain flag to the NetworkSession.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::hasAppBoundSession const):
(WebKit::NetworkProcess::setInAppBrowserPrivacyEnabled):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::hasAppBoundSession const):
(WebKit::NetworkSession::setInAppBrowserPrivacyEnabled):
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreHasAppBoundSession):
(WKWebsiteDataStoreSetInAppBrowserPrivacyEnabled):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getWebViewCategoryFor:completionHandler:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasAppBoundSession):
(WebKit::NetworkProcessProxy::setInAppBrowserPrivacyEnabled):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasAppBoundSession const):
(WebKit::WebsiteDataStore::setInAppBrowserPrivacyEnabled):
- UIProcess/WebsiteData/WebsiteDataStore.h:
A large portion of this patch is three functions for testing, one sets
the in-app browser privacy flag for the test case, one checks for an app-bound session, and one
checks to make sure the category was correctly set to app-bound domain.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
Passes the In-app browser privacy flag value from NSUserDefaults to the network session.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::appBoundSession):
(WebKit::NetworkSessionCocoa::hasAppBoundSession const):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::clearCredentials):
Creates a new session (or returns the existing app-bound session) if
the navigation is app-bound. This is the main change in this patch.
- Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
- Shared/LoadParameters.h:
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
In the case of a process swap, we must add the
isNavigatingToAppBoundDomain boolean in LoadParameters to ensure it gets sent to
the new WebPage via the ProvisionalPageProxy.
(WebKit::WebPageProxy::PolicyDecisionSender::send):
Fixes a capitalization error.
(WebKit::WebPageProxy::isAppBoundDomain):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isNavigatingToAppBoundDomain):
These functions determine if the category is app-bound and update the
isNavigatingToAppBoundDomain boolean accordingly.
- Shared/PolicyDecision.h:
(WebKit::PolicyDecision::encode const):
(WebKit::PolicyDecision::decode):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
For a non-process swap case, we can send the
isNavigatingToAppBoundDomain value in the
PolicyDecision struct.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
Sends the isNavigatingToAppBoundDomain boolean to the NetworkProcess
with the NetworkResourceLoadParameters.
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isNavigatingToAppBoundDomain):
The boolean value for isNavigatingToAppBoundDomain is stored
in the webPage so WebLoaderStrategy can access it to send to the
NetworkProcess.
Tools:
This patch is mostly test infrastructure involving 3 functions.
One sets in-app browser privacy as enabled in the network process
manually for the test. One ensures that setting the WebView category
works properly, and the last one checks for an app-bound session for
an app-bound navigation.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::getWebViewCategory):
(WTR::TestRunner::callDidReceiveWebViewCategoryCallback):
(WTR::TestRunner::hasAppBoundSession):
(WTR::TestRunner::setInAppBrowserPrivacyEnabled):
(WTR::TestRunner::callDidSetInAppBrowserPrivacyEnabledCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::ensureViewSupportsOptionsForTest):
Clearing the bundleID should happen right before setting a new one,
otherwise it clears the ID after it is set and returns a null ID.
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::getWebViewCategory):
(WTR::InAppBrowserPrivacyCallbackContext::InAppBrowserPrivacyCallbackContext):
(WTR::inAppBrowserPrivacyBooleanResultCallback):
(WTR::inAppBrowserPrivacyVoidResultCallback):
(WTR::TestController::hasAppBoundSession):
(WTR::TestController::setInAppBrowserPrivacyEnabled):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::didSetInAppBrowserPrivacyEnabled):
(WTR::TestInvocation::didReceivePrevalentDomains):
(WTR::TestInvocation::didReceiveWebViewCategory):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::getWebViewCategory):
LayoutTests:
Added two tests. One to test the proper categorization of app-bound
navigation, and one to check that switching sessions occurs when
navigating to an app-bound domain.
Since these tests use ITP to set user interaction, they should only
be run on iOS and mac-wk2.
- TestExpectations:
- http/tests/in-app-browser-privacy/app-bound-domain-expected.txt: Added.
- http/tests/in-app-browser-privacy/app-bound-domain.html: Added.
- http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain-expected.txt: Added.
- http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html: Added.
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 5:05 PM Changeset in webkit [257184] by
-
- 1 copy in tags/Safari-610.1.4
Tag Safari-610.1.4.
- 5:00 PM Changeset in webkit [257183] by
-
- 1 copy in tags/Safari-609.1.20.111.2
Tag Safari-609.1.20.111.2.
- 4:40 PM Changeset in webkit [257182] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/tests/workers/service/Client-properties-auxiliary.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208081
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:16 PM Changeset in webkit [257181] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug ] legacy-animation-engine/animations/animation-welcome-safari.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208077
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:49 PM Changeset in webkit [257180] by
-
- 1 copy in tags/Safari-609.1.20.100.2
Tag Safari-609.1.20.100.2.
- 3:25 PM Changeset in webkit [257179] by
-
- 2 edits in branches/safari-609.1.20.100-branch/Source/WebKit
Cherry-pick r257013. rdar://problem/59614284
Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973
Reviewed by Chris Dumez.
Use RefPtr to store Frame*.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:13 PM Changeset in webkit [257178] by
-
- 1 edit in branches/safari-609.1.20.100-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply patch. rdar://problem/59652987
- 3:05 PM Changeset in webkit [257177] by
-
- 1 copy in tags/Safari-609.1.20.0.3
Tag Safari-609.1.20.0.3.
- 3:00 PM Changeset in webkit [257176] by
-
- 8 edits in branches/safari-609.1.20.100-branch/Source
Versioning.
- 2:59 PM Changeset in webkit [257175] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Apply patch. rdar://problem/59680475
- 2:59 PM Changeset in webkit [257174] by
-
- 23 edits3 adds in branches/safari-609-branch
Apply patch. rdar://problem/59654268
- 2:58 PM Changeset in webkit [257173] by
-
- 3 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r257134. rdar://problem/59676907
Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>
Reviewed by Yusuke Suzuki.
If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:
- Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.
This ensures that we won't get corrupted cache files due to interrupted writes.
- Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.
This ensures that we won't be crashing while decoding a corrupted cache file.
Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:
- no cache file on disk.
- a 0-sized cache file on a disk.
- a truncated cache file on disk.
- a corrupted cache file on disk.
- an uncorrupted cache file on disk.
Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.
- API/JSScript.mm: (-[JSScript readCache]): (-[JSScript writeCache:]):
- runtime/CachedTypes.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257172] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r257106. rdar://problem/59676866
Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037
<rdar://problem/59480381>
Reviewed by Brent Fulgham.
No new tests. This patch just adds a domain name to a quirks function.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingRecommendedForRequest):
fidelity.com and its subdomains now return false.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257171] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r257103. rdar://problem/59676889
WebIDBServer resume should return early if suspend does not happen
https://bugs.webkit.org/show_bug.cgi?id=208027
<rdar://problem/59617654>
Reviewed by Geoffrey Garen.
We should not try releasing a lock that is not held.
- NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::resume):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257103 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257170] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r257089. rdar://problem/59676923
NetworkCache should use 4KB threshold for mmap-ed files instead of 16KB
https://bugs.webkit.org/show_bug.cgi?id=207882
Reviewed by Alex Christensen.
Source/WebKit:
We found that a lot of Vectors in Membuster is holding resource content. This is because we have 16KB threshold for mmap-ed files.
If a file is smaller than 16KB, it is copied to Vector instead. But this is costly in terms of memory. If we use mmap-ed files,
it becomes named-pages instead of anonymous-pages. File-backed non-dirty named-pages have a lot of benefit.
- The application is offering a hint that pages are file-backed. This means that OS can purge them at any time since the content can be recovered from the disk. This is cheaper than swapping / compressing anonymous pages since just discarding works.
- The application is offering a hint that pages have spatial locality. Purging pages in one named-pages region is better compared to purging the same # of anonymous pages randomly. Anonymous pages are split by malloc implementation and access pattern of pages in one VA is random. On the other hand, named-pages are accessed together because it is file, and file typically has sequential locality. And recovery of named pages are also cheap compared to anonymous pages since OS can prefetch pages once access happens because of sequential locality of files. This tendency makes OS like purging named pages instead of anonymous pages. In WebKit use case, this works perfectly. CachedResource typically has decoded content. So typically WebProcess does not access SharedBuffer after the content is decoded.
This patch reduces the threshold from 16KB to page size (4KB in macOS, 16KB in iOS). This is pre-2015 behavior.
This offers 2.56% progression with 98% probability in Membuster.
- NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::maximumInlineBodySize): (WebKit::NetworkCache::estimateRecordsSize): (WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):
LayoutTests:
The test is assuming that 12KB file is served via non-mmap-file.
This assumption is flaky and broken by this change. For now, we pick smaller
file to meet this assumption.
- http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:
- http/tests/inspector/network/resource-sizes-disk-cache.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257169] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r257077. rdar://problem/59676879
REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>
Reviewed by Geoffrey Garen.
Source/WebKit:
Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257168] by
-
- 10 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256967. rdar://problem/59654609
Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>
Reviewed by Alex Christensen.
NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).
To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): (WebKit::NetworkProcess::setCacheModel):
- NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::cacheModel const):
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::initialize):
- NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::computeCapacity): (WebKit::NetworkCache::Cache::open): (WebKit::NetworkCache::Cache::capacity const): (WebKit::NetworkCache::Cache::updateCapacity): (WebKit::NetworkCache::Cache::setCapacity): Deleted.
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::setCapacity):
- NetworkProcess/cache/NetworkCacheStorage.h:
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setCacheModel):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257167] by
-
- 6 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256881. rdar://problem/59654577
Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>
Reviewed by Per Arne Vollan.
- NetworkProcess/NetworkProcess.cpp:
- NetworkProcess/NetworkProcess.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257166] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256857. rdar://problem/59654279
NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486
Reviewed by Alex Christensen.
NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256857 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257165] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256856. rdar://problem/59654783
MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622
Reviewed by Eric Carlson.
Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm: (WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [257164] by
-
- 1 edit in branches/safari-609-branch/Source/JavaScriptCore/runtime/JSCJSValue.h
Apply patch. rdar://problem/59654701
- 2:34 PM Changeset in webkit [257163] by
-
- 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit
Apply patch. rdar://problem/59680470
- 2:25 PM Changeset in webkit [257162] by
-
- 3 edits in trunk/Source/WebKit
Remove telemetry from sandbox rules needed for basic WebKit logging
https://bugs.webkit.org/show_bug.cgi?id=208073
<rdar://problem/59658551>
Reviewed by Per Arne Vollan.
Now that we see the specific uses for the 'kern.osversion' sysctl and the need
for network-outbound connections for syslog, we can remove the telemetry.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:42 PM Changeset in webkit [257161] by
-
- 15 edits in trunk/Tools
Build DumpRenderTree and WebKitTestRunner for macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=208068
<rdar://problem/59676596>
Reviewed by Tim Horton.
- DumpRenderTree/ios/TextInputControllerIOS.m: Import WebKitLegacy explicitly.
- DumpRenderTree/mac/Configurations/Base.xcconfig: Use cocoatouch instead of SDK.
- DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: Ditto.
- DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig: Ditto.
- DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Ditto.
- DumpRenderTree/mac/Configurations/TestNetscapePlugIn.xcconfig: Ditto.
- DumpRenderTree/mac/EditingDelegate.mm: Import WebKitLegacy explicitly.
- DumpRenderTree/mac/EventSendingController.h: Ditto.
- DumpRenderTree/mac/ObjCPlugin.m: Ditto.
- DumpRenderTree/mac/ResourceLoadDelegate.mm: Ditto.
- Makefile: Add DumpRenderTree and WebKitTestRunner.
- WebKitTestRunner/Configurations/Base.xcconfig: Use cocoatouch instead of SDK.
- WebKitTestRunner/Configurations/InjectedBundle.xcconfig: Ditto.
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig: Ditto.
- 1:39 PM Changeset in webkit [257160] by
-
- 2 edits in trunk/Source/WebCore
Remove an unused local variable after r256808
https://bugs.webkit.org/show_bug.cgi?id=208072
Reviewed by Chris Dumez.
Remove scriptsToExecuteSoon.
- dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::timerFired):
- 1:36 PM Changeset in webkit [257159] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 1:19 PM Changeset in webkit [257158] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r255533) Null Deref of _sessionWrapper under [WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=208029
<rdar://problem/59404381>
Reviewed by Tim Horton.
r255533 started dereferencing _sessionWrapper without null check in didReceiveChallenge. All other delegates in this file null check
_sessionWrapper before using it because it is a weak pointer. Add a null check to avoid crashing.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate sessionFromTask:]):
- 1:12 PM Changeset in webkit [257157] by
-
- 2 edits in trunk/Tools
[ews] Add build step to Validate ChangeLog for commit-queue
https://bugs.webkit.org/show_bug.cgi?id=208064
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(ValidateChangeLogAndReviewer): Build step to validate ChangeLog.
(ValidateChangeLogAndReviewer.start):
(ValidateChangeLogAndReviewer.evaluateCommand): If the validation fails, comment on bug and mark patch as cq-.
(SetCommitQueueMinusFlagOnPatch.start): End the build (after marking the patch cq-) if build_finish_summary property is set.
- 12:26 PM Changeset in webkit [257156] by
-
- 12 edits3 copies in trunk
Create a new ImageBuffer type for drawing on a DisplayList
https://bugs.webkit.org/show_bug.cgi?id=207109
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-21
Reviewed by Simon Fraser.
Source/WebCore:
DisplayList::ImageBuffer inherits ConcreteImageBuffer and DrawingContext.
The drawing context will be the context of DrawingContext. The operations
of ConcreteImageBuffer will have to ensure the recorded display-list is
replayed back before getting the pixels of the ImageBufferBackend.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createContext2d):
(WebCore::HTMLCanvasElement::setUsesDisplayListDrawing):
(WebCore::HTMLCanvasElement::setTracksDisplayListReplay):
(WebCore::HTMLCanvasElement::displayListAsText const):
(WebCore::HTMLCanvasElement::replayDisplayListAsText const):
All the DisplayList operations will be routed to the DrawingContext of
the ImageBuffer.
(WebCore::HTMLCanvasElement::createImageBuffer const):
createImageBuffer() can decide the ImageBuffer type based on the settings
and the size of the canvas.
- html/HTMLCanvasElement.h:
- platform/graphics/ConcreteImageBuffer.h:
(WebCore::ConcreteImageBuffer::create):
The type of the ImageBuffer will be passed to this function such that
it can create instances of derived classes.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
Create ImageBuffers which record the drawing commands to DisplayLists before
committing them to the back-ends.
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::drawingContext):
(WebCore::ImageBuffer::flushDrawingContext):
Add virtual methods to support DisplayList in ImageBuffer.
- platform/graphics/PlatformImageBuffer.h:
- platform/graphics/RenderingMode.h:
Add DisplayList types to RenderingMode and define platform types for
DisplayList ImageBuffers.
- platform/graphics/displaylists/DisplayListDrawingContext.cpp: Added.
(WebCore::DisplayList::DrawingContext::DrawingContext):
(WebCore::DisplayList::DrawingContext::setTracksDisplayListReplay):
(WebCore::DisplayList::DrawingContext::replayDisplayList):
- platform/graphics/displaylists/DisplayListDrawingContext.h: Added.
(WebCore::DisplayList::DrawingContext::context const):
(WebCore::DisplayList::DrawingContext::displayList):
(WebCore::DisplayList::DrawingContext::displayList const):
(WebCore::DisplayList::DrawingContext::replayedDisplayList const):
DisplayList::DrawingContext holds a recording and an optional replaying
back DisplayLists. It also provides a recording GraphicsContext.
- platform/graphics/displaylists/DisplayListImageBuffer.h: Added.
(WebCore::DisplayList::ImageBuffer::create):
(WebCore::DisplayList::ImageBuffer::ImageBuffer):
(WebCore::DisplayList::ImageBuffer::~ImageBuffer):
Drawing commands will be recorded first because context() is overridden
to return the GraphicsContext of DrawingContext. These drawing commands
will be flushed before getting the pixels of the back-end because
flushDrawingContext() is overridden to replay back the recorded DisplayList
to the GraphicsContext of the back-end.
LayoutTests:
The extra commands are recorded by CanvasBase::setImageBuffer() which
used to issue these GraphicsContext commands directly to the backend.
With this patch, DisplayList::ImageBuffer does not allow access to the
backend context. So all the GraphicsContext commands has to be recorded.
- displaylists/canvas-display-list-expected.txt:
- 12:23 PM Changeset in webkit [257155] by
-
- 2 edits in trunk/Source/WebKit
Address post-review feedback in webkit.org/b/207352
https://bugs.webkit.org/show_bug.cgi?id=207352
Reviewed by Brian Weinstein.
Use m_mainFrame instead of going through Page, and also append the string "\n\n" instead of appending the
newline character twice.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsString):
- 11:58 AM Changeset in webkit [257154] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r256764?) [ Mac wk1 Release ] legacy-animation-engine/fast/animation/animation-mixed-transform-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208019
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:42 AM Changeset in webkit [257153] by
-
- 2 edits in trunk/Source/WebKit
[Media in GPU process] Synchronize the properties of video layers in the GPU process with the hosting layer in the web process
https://bugs.webkit.org/show_bug.cgi?id=206132
Patch by Peng Liu <Peng Liu> on 2020-02-21
Reviewed by Eric Carlson.
A follow-up patch to fix Catalyst/watchOS/tvOS build failures related to unified build.
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:
- 11:33 AM Changeset in webkit [257152] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/nested-loop.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207117
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:21 AM Changeset in webkit [257151] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Issue extension of CoreMedia service to the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=208066
<rdar://problem/35864528>
Reviewed by Geoffrey Garen.
This service should also be added to the sandbox of the GPU process.
No new tests, covered by existing tests.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::mediaRelatedMachServices):
- 11:03 AM Changeset in webkit [257150] by
-
- 11 edits in trunk/Source
[macOS] Large form controls are rendered at the wrong NSControlSize
https://bugs.webkit.org/show_bug.cgi?id=208043
<rdar://problem/59659134>
Reviewed by Tim Horton.
Source/WebCore:
When painting form controls that are larger than a certain threshold (for the most part, 21px), use
NSControlSizeLarge instead of NSControlSizeRegular. This makes us choose a more appropriate appearance when
painting native large form controls, as long as the system supports it. Note that not all the metrics for
NSControlSizeLarge form controls are finalized, as noted in the per-method comments below.
With this patch alone, there is no change in behavior yet; in the near future, these changes will be covered by
new platform-specific baselines.
- platform/PopupMenuStyle.h: Add a new PopupMenuSizeLarge that corresponds to a popup that has NSControlSizeLarge.
- platform/mac/ThemeMac.h: Add a helper to check (at runtime) whether the new large form control size is enabled.
- platform/mac/ThemeMac.mm:
(WebCore::controlSizeForFont): Add a new font size breakpoint, for which we use NSControlSizeLarge instead of
NSControlSizeRegular.
(WebCore::sizeFromNSControlSize):
(WebCore::sizeFromFont):
(WebCore::controlSizeFromPixelSize):
(WebCore::setControlSize):
(WebCore::checkboxSizes): Reflect the fact that checkboxes with NSControlSizeLarge are 16 by 16.
(WebCore::checkboxMargins): Just match NSControlSizeRegular margins for now. These seem incorrect already, even
for NSControlSizeRegular in macOS 10.15.
(WebCore::radioSizes): Reflect the fact that radio buttons with NSControlSizeLarge are 16 by 16, and
NSControlSizeRegular radio buttons are 14 by 14.
(WebCore::radioMargins): Just match NSControlSizeRegular margins for now. These seem incorrect already, even for
NSControlSizeRegular in macOS 10.15.
(WebCore::buttonSizes): Reflect the fact that buttons with NSControlSizeLarge are 28px tall.
(WebCore::buttonMargins): Just match NSControlSizeRegular margins for now, and add a FIXME about updating them.
(WebCore::setUpButtonCell):
(WebCore::stepperSizes): NSControlSizeLarge matches NSControlSizeRegular at the moment.
(WebCore::stepperControlSizeForFont): Add a new font size breakpoint for using NSControlSizeLarge.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::controlSizeForFont const):
(WebCore::RenderThemeMac::controlSizeForCell const):
(WebCore::RenderThemeMac::controlSizeForSystemFont const):
(WebCore::RenderThemeMac::popupButtonMargins const):
(WebCore::RenderThemeMac::popupButtonSizes const):
(WebCore::RenderThemeMac::popupButtonPadding const):
NSControlSizeLarge metrics for popup buttons cannot be determined yet.
(WebCore::RenderThemeMac::progressBarSizes const):
(WebCore::RenderThemeMac::progressBarMargins const):
(WebCore::RenderThemeMac::paintProgressBar):
NSControlSizeLarge matches NSControlSizeRegular at the moment.
(WebCore::menuListButtonSizes):
(WebCore::RenderThemeMac::popupMenuSize const):
(WebCore::RenderThemeMac::menuListSizes const):
(WebCore::RenderThemeMac::searchFieldSizes const):
(WebCore::RenderThemeMac::cancelButtonSizes const):
(WebCore::RenderThemeMac::resultsButtonSizes const):
Search field results and cancel buttons have the same size in NSControlSizeLarge as in NSControlSizeRegular.
Source/WebCore/PAL:
Import NSAppearance_Private.h in this SPI header. See WebCore ChangeLog for more details.
- pal/spi/mac/NSAppearanceSPI.h:
Source/WebKit:
See WebCore ChangeLog for more details.
- UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
Source/WebKitLegacy/mac:
See WebCore ChangeLog for more details.
- WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):
- 10:52 AM Changeset in webkit [257149] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 Debug ] legacy-animation-engine/animations/animation-direction-normal.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208065
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 10:39 AM Changeset in webkit [257148] by
-
- 4 edits in trunk/Source/WebKit
Remove WebPageProxy::machSendRightCallback as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=208057
<rdar://problem/59658805>
Reviewed by Geoffrey Garen.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- 10:24 AM Changeset in webkit [257147] by
-
- 2 edits in trunk/Tools
[ews] Add build step to set cq- flag on bugzilla patch
https://bugs.webkit.org/show_bug.cgi?id=208021
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(BugzillaMixin.set_cq_minus_flag_on_patch):
(SetCommitQueueMinusFlagOnPatch):
(SetCommitQueueMinusFlagOnPatch.start):
(SetCommitQueueMinusFlagOnPatch.getResultSummary):
- 10:23 AM Changeset in webkit [257146] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/wpt/fetch/disable-speculative-for-reload.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208062
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:18 AM Changeset in webkit [257145] by
-
- 4 edits in trunk/Source/WebKit
Remove WebPasteBoardProxy::PasteboardCopy as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=208058
<rdar://problem/59658727>
Reviewed by Geoffrey Garen.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
- 10:08 AM Changeset in webkit [257144] by
-
- 6 edits in trunk/Tools
Stub repositories fail to upload some results due to missing head svn revision
https://bugs.webkit.org/show_bug.cgi?id=207684
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/common/host_mock.py: Added in call for creating stub repo checkout information for upload tests.
(MockHost.init):
- Scripts/webkitpy/layout_tests/models/test_run_results.py:
(summarize_results): Changed call to head_svn_revision to port.commits_for_upload() to bring
- Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
(SummarizedResultsTest.setUp): Added in new required parameter for testing.
- Scripts/webkitpy/port/base.py:
(Port.commits_for_upload): Removed the forced movement up the systems tree that prevented us
from using mock SCMs and more
- Scripts/webkitpy/port/test.py: Added function to make the checkout_information.json for upload testing.
- 10:03 AM Changeset in webkit [257143] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
[iOS][Legacy WebKit] Expose SPI for Page::revealCurrentSelection()
https://bugs.webkit.org/show_bug.cgi?id=207960
<rdar://problem/59604163>
Reviewed by Wenson Hsieh.
Together with <https://bugs.webkit.org/show_bug.cgi?id=207955> this allows a client to reveal
the current selection when it's ready to do so.
- WebView/WebView.mm:
(-[WebView revealCurrentSelection]): Added.
- WebView/WebViewPrivate.h:
- 9:51 AM Changeset in webkit [257142] by
-
- 3 edits in trunk/Source/WTF
REGRESSION(r257072): MotionMark | Mac | -10%
https://bugs.webkit.org/show_bug.cgi?id=208054
<rdar://problem/59664582>
Reviewed by Geoffrey Garen.
With rAF and slow scripts, suspended functions may pile up in RunLoop because every cycle does a rendering update.
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
Don't suspend if there are already pending suspended functions.
- wtf/RunLoop.h:
- 9:47 AM Changeset in webkit [257141] by
-
- 2 edits in trunk/Tools
[JSCOnly] Add --verbose flag when running JavaScriptCore tests
https://bugs.webkit.org/show_bug.cgi?id=208051
Reviewed by Carlos Alberto Lopez Perez.
Verbose flag prints out each test name executed. Without this flag
stdout prints out one or two periods.
- BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunJavaScriptCoreTests.start):
- 9:26 AM Changeset in webkit [257140] by
-
- 2 edits in trunk/LayoutTests
[ Mojave ] webaudio/audioparam-exponentialRampToValueAtTime.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208061
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:22 AM Changeset in webkit [257139] by
-
- 4 edits in trunk
[WPE][GTK] googleapis.com is a public suffix, defeating isGoogle() check in UserAgentQuirks.cpp
https://bugs.webkit.org/show_bug.cgi?id=207984
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-21
Reviewed by Daniel Bates.
Source/WebCore:
Fix the check for googleapis.com. Since it's now a public suffix, we can no longer check the
URL's base domain here. Instead, we can check endsWith().
I considered switching to endsWith() for all the checks in this file, to make our user agent
quirks robust to future changes in the public suffix list, but checking the base domain is
nicer and it seems unnecessary. We can continue to adjust our quirks in the future as
necessary.
The public suffix list:
https://github.com/publicsuffix/list/blob/7922d7c20e246552be418e8f72e577899fd30d99/public_suffix_list.dat#L11922
- platform/UserAgentQuirks.cpp:
(WebCore::isGoogle):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
- 9:21 AM Changeset in webkit [257138] by
-
- 9 edits2 adds in trunk
[Web Animations] Repeated animations on pseudo elements will fail to run after a while
https://bugs.webkit.org/show_bug.cgi?id=207993
Source/WebCore:
<rdar://problem/59428472>
Reviewed by Zalan Bujtas.
We failed to clear PseudoElement* from AnimationTimeline's various HashMaps on destruction,
causing animations to fail to run when those pointer addresses were reused.
Make DeclarativeAnimation::owningElement() be a WeakPtr<>.
Test: animations/many-pseudo-animations.html
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::willDestoryRendererForElement):
(WebCore::AnimationTimeline::elementWasRemoved):
- animation/AnimationTimeline.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):
- animation/DeclarativeAnimation.h:
(WebCore::DeclarativeAnimation::owningElement const):
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
Reviewed by Zalan Bujtas.
- animations/many-pseudo-animations-expected.txt: Added.
- animations/many-pseudo-animations.html: Added.
- 9:06 AM Changeset in webkit [257137] by
-
- 36 edits1 copy2 moves54 adds in trunk/LayoutTests
Update WPT tests for Intersection Observer
https://bugs.webkit.org/show_bug.cgi?id=208053
Patch by Frederic Wang <fwang@igalia.com> on 2020-02-21
Reviewed by Daniel Bates.
LayoutTests/imported/w3c:
- web-platform-tests/intersection-observer/bounding-box.html:
- web-platform-tests/intersection-observer/client-rect.html:
- web-platform-tests/intersection-observer/containing-block.html:
- web-platform-tests/intersection-observer/cross-origin-iframe.sub-expected.txt: Added.
- web-platform-tests/intersection-observer/cross-origin-iframe.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/intersection-observer/cross-origin-iframe.html.
- web-platform-tests/intersection-observer/disconnect.html:
- web-platform-tests/intersection-observer/display-none.html:
- web-platform-tests/intersection-observer/document-scrolling-element-root-expected.txt: Added.
- web-platform-tests/intersection-observer/document-scrolling-element-root.html: Added.
- web-platform-tests/intersection-observer/edge-inclusive-intersection.html:
- web-platform-tests/intersection-observer/empty-root-margin.html:
- web-platform-tests/intersection-observer/iframe-no-root-with-wrapping-scroller-expected.txt: Added.
- web-platform-tests/intersection-observer/iframe-no-root-with-wrapping-scroller.html: Copied from LayoutTests/imported/w3c/web-platform-tests/intersection-observer/iframe-no-root.html.
- web-platform-tests/intersection-observer/iframe-no-root.html:
- web-platform-tests/intersection-observer/initial-observation-with-threshold.html:
- web-platform-tests/intersection-observer/inline-client-rect.html:
- web-platform-tests/intersection-observer/isIntersecting-change-events.html:
- web-platform-tests/intersection-observer/isIntersecting-threshold-expected.txt: Added.
- web-platform-tests/intersection-observer/isIntersecting-threshold.html: Added.
- web-platform-tests/intersection-observer/multiple-targets.html:
- web-platform-tests/intersection-observer/multiple-thresholds.html:
- web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub-expected.txt: Added.
- web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub.html: Added.
- web-platform-tests/intersection-observer/observer-attributes.html:
- web-platform-tests/intersection-observer/observer-exceptions.html:
- web-platform-tests/intersection-observer/observer-in-iframe.html:
- web-platform-tests/intersection-observer/observer-without-js-reference.html:
- web-platform-tests/intersection-observer/remove-element.html:
- web-platform-tests/intersection-observer/resources/cross-origin-child-iframe.sub.html: Added.
- web-platform-tests/intersection-observer/resources/cross-origin-subframe.html:
- web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js:
(waitForNotification):
(waitForFrame):
(runTestCycle):
(checkJsonEntry):
- web-platform-tests/intersection-observer/resources/nested-cross-origin-child-iframe.sub.html: Added.
- web-platform-tests/intersection-observer/resources/nested-cross-origin-grand-child-iframe.html: Added.
- web-platform-tests/intersection-observer/resources/same-origin-grand-child-iframe.html: Added.
- web-platform-tests/intersection-observer/resources/scaled-target-subframe.html: Added.
- web-platform-tests/intersection-observer/resources/v2-subframe.html: Added.
- web-platform-tests/intersection-observer/resources/w3c-import.log:
- web-platform-tests/intersection-observer/root-margin-rounding-expected.txt: Added.
- web-platform-tests/intersection-observer/root-margin-rounding.html: Added.
- web-platform-tests/intersection-observer/root-margin.html:
- web-platform-tests/intersection-observer/rtl-clipped-root-expected.txt: Added.
- web-platform-tests/intersection-observer/rtl-clipped-root.html: Added.
- web-platform-tests/intersection-observer/same-document-no-root.html:
- web-platform-tests/intersection-observer/same-document-root.html:
- web-platform-tests/intersection-observer/same-document-zero-size-target.html:
- web-platform-tests/intersection-observer/same-origin-grand-child-iframe.sub-expected.txt: Added.
- web-platform-tests/intersection-observer/same-origin-grand-child-iframe.sub.html: Added.
- web-platform-tests/intersection-observer/shadow-content.html:
- web-platform-tests/intersection-observer/target-in-different-window.html:
- web-platform-tests/intersection-observer/text-target.html:
- web-platform-tests/intersection-observer/timestamp.html:
- web-platform-tests/intersection-observer/unclipped-root.html:
- web-platform-tests/intersection-observer/v2/animated-occlusion-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/animated-occlusion.html: Added.
- web-platform-tests/intersection-observer/v2/blur-filter-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/blur-filter.html: Added.
- web-platform-tests/intersection-observer/v2/box-shadow-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/box-shadow.html: Added.
- web-platform-tests/intersection-observer/v2/cross-origin-effects.sub-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/delay-test-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/delay-test.html: Added.
- web-platform-tests/intersection-observer/v2/drop-shadow-filter-vertical-rl-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/drop-shadow-filter-vertical-rl.html: Added.
- web-platform-tests/intersection-observer/v2/iframe-target-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/iframe-target.html: Added.
- web-platform-tests/intersection-observer/v2/inline-occlusion-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/inline-occlusion.html: Added.
- web-platform-tests/intersection-observer/v2/position-relative-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/position-relative.html: Added.
- web-platform-tests/intersection-observer/v2/scaled-target-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/scaled-target.html: Added.
- web-platform-tests/intersection-observer/v2/simple-effects-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/simple-effects.html: Added.
- web-platform-tests/intersection-observer/v2/simple-occlusion-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html: Added.
- web-platform-tests/intersection-observer/v2/simple-occlusion.html: Added.
- web-platform-tests/intersection-observer/v2/text-editor-occlusion-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/text-editor-occlusion.html: Added.
- web-platform-tests/intersection-observer/v2/text-shadow-expected.txt: Added.
- web-platform-tests/intersection-observer/v2/text-shadow.html: Added.
- web-platform-tests/intersection-observer/v2/w3c-import.log: Added.
- web-platform-tests/intersection-observer/w3c-import.log:
- web-platform-tests/intersection-observer/zero-area-element-hidden.html:
- web-platform-tests/intersection-observer/zero-area-element-visible.html:
- web-platform-tests/intersection-observer/v2/cross-origin-effects.sub.html: Added.
- web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub.html: Added.
LayoutTests:
Add iOS expectations and skip new tests timing out.
- TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/intersection-observer/cross-origin-iframe.sub-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/intersection-observer/iframe-no-root-with-wrapping-scroller-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub-expected.txt: Remamed from platform/ios/imported/w3c/web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub.txt.
- 8:43 AM Changeset in webkit [257136] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 Debug ] legacy-animation-engine/compositing/transitions/add-remove-transition.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208059
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 8:27 AM Changeset in webkit [257135] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Fix media related sandbox issues in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=208033
Reviewed by Eric Carlson.
The mach lookup sandbox extension to 'com.apple.tccd' needs to be created with the method SandboxExtension::createHandleForMachLookup.
The file read-write sandbox extension to the media cache directory needs to be created with the parent folder of the actual cache folder,
since the media frameworks also seem to access files there.
No new tests, covered by existing tests.
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::singleton):
(WebKit::gpuProcessSessionParameters):
- 8:20 AM Changeset in webkit [257134] by
-
- 3 edits in trunk/Source/JavaScriptCore
Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>
Reviewed by Yusuke Suzuki.
If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:
- Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.
This ensures that we won't get corrupted cache files due to interrupted writes.
- Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.
This ensures that we won't be crashing while decoding a corrupted cache file.
Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:
- no cache file on disk.
- a 0-sized cache file on a disk.
- a truncated cache file on disk.
- a corrupted cache file on disk.
- an uncorrupted cache file on disk.
Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.
- API/JSScript.mm:
(-[JSScript readCache]):
(-[JSScript writeCache:]):
- runtime/CachedTypes.cpp:
- 4:38 AM Changeset in webkit [257133] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] TextCombinerGStreamer is failing to compile with Gst1.14
https://bugs.webkit.org/show_bug.cgi?id=208041
Reviewed by Xabier Rodriguez-Calvar.
Replace usage of gst_clear_object and gst_clear_tag_list with previous
*_unref functions. The clear versions were added in 1.16 while Ubuntu
18.04 (current LTS) and Debian stable uses 1.14.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadDispose):
- 3:22 AM Changeset in webkit [257132] by
-
- 16 edits in trunk
Value sanitization for input[type=text] should not truncate a value at a control character
https://bugs.webkit.org/show_bug.cgi?id=207900
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline the tests. Below its a summary of the number of FAIL and PASS lines changed for each test:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt: FAIL from 7312 to 374 PASS from 17 to 6955
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt: FAIL from 21216 to 477 PASS from 53 to 20792
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt: FAIL from 11155 to 0 PASS from 28 to 11183
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt: FAIL from 3422 to 46 PASS from 9 to 3385
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt: FAIL from 7375 to 374 PASS from 17 to 7018
- web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: FAIL from 20 to 10 PASS from 22 to 32
Source/WebCore:
Stop truncating value at a control character. The new behavior is compatible with Chrome and Firefox.
Inspired on Chromium patch https://codereview.chromium.org/189843008
Covered by existing tests: affected layout tests are modified to reflect the new behaviour.
This improves WPT pass-rate in around 49K new subtest passes for Japanesse encoding tests.
- html/TextFieldInputType.cpp:
(WebCore::limitLength):
LayoutTests:
Update layout tests to reflect the new behaviour.
- fast/forms/input-value-sanitization-expected.txt:
- fast/forms/input-value-sanitization.html:
- fast/forms/paste-multiline-text-input.html:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
- 2:26 AM Changeset in webkit [257131] by
-
- 5 edits2 adds in trunk/Source/WebCore
[WPE] Use custom theme style for media controls
https://bugs.webkit.org/show_bug.cgi?id=208002
Reviewed by Adrian Perez de Castro.
Add mediaControlsAdwaita.css and mediaControlsAdwaita.js. The style is based on GTK port with a few differences:
- Adwaita icons are included in the css.
- All buttons have effects for hover, pressed and disabled states.
- Mute and fullscreen (only for videos) buttons are always visible, but disabled when not available to avoid the dancing when they are shown.
- Media duration is always shown too (for non-live streams), being 00:00 and disabled when unknown, for the same reason.
- Timeline and volume sliders are smaller and their thumbs are circled instead of rounded rectangles.
- Slider thumbs also have effects for hover, pressed and disabled states.
- Modules/mediacontrols/mediaControlsAdwaita.css: Added.
(audio::-webkit-media-controls-panel.hidden,):
(body:-webkit-full-page-media):
(audio):
(audio:-webkit-full-page-media,):
(audio:-webkit-full-page-media::-webkit-media-controls-panel,):
(::-webkit-media-controls):
(audio::-webkit-media-controls-enclosure,):
(video::-webkit-media-controls-enclosure):
(audio::-webkit-media-controls-panel,):
(video::-webkit-media-controls-panel):
(video::-webkit-media-controls-panel div.mute-box,):
(audio::-webkit-media-controls-panel div.mute-box.hidden,):
(audio::-webkit-media-controls-mute-button,):
(audio::-webkit-media-controls-mute-button.muted,):
(audio::-webkit-media-controls-play-button,):
(audio::-webkit-media-controls-play-button.paused,):
(audio::-webkit-media-controls-current-time-display,):
(audio::-webkit-media-controls-current-time-display.no-duration,):
(audio::-webkit-media-controls-current-time-display.hidden,):
(audio::-webkit-media-controls-timeline,):
(input[type="range"][disabled]::-webkit-media-slider-thumb,):
(audio::-webkit-media-controls-timeline.hidden,):
(audio::-webkit-media-controls-volume-slider-container,):
(audio::-webkit-media-controls-volume-slider-container.hiding,):
(audio::-webkit-media-controls-volume-slider-container.down,):
(audio::-webkit-media-controls-panel .hiding.down,):
(audio::-webkit-media-controls-volume-slider,):
(audio::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-container > div,):
(input[type="range"]::-webkit-media-slider-container):
(input[type="range"]::-webkit-media-slider-container > div):
(input[type="range"]::-webkit-media-slider-thumb):
(audio::-webkit-media-controls-toggle-closed-captions-button,):
(audio::-webkit-media-controls-toggle-closed-captions-button.hidden,):
(video::-webkit-media-controls-closed-captions-container):
(video::-webkit-media-controls-closed-captions-container.out):
(video::-webkit-media-controls-closed-captions-container.hidden):
(video::-webkit-media-controls-closed-captions-container h3):
(video::-webkit-media-controls-closed-captions-container ul):
(video::-webkit-media-controls-closed-captions-container li):
(video::-webkit-media-controls-closed-captions-container li.selected):
(audio::-webkit-media-controls-fullscreen-button,):
(audio::-webkit-media-controls-fullscreen-button.hidden,):
(audio::-webkit-media-controls-panel button:hover,):
(audio::-webkit-media-controls-panel button:active,):
(audio::-webkit-media-controls-panel button[disabled],):
- Modules/mediacontrols/mediaControlsAdwaita.js: Added.
(createControls):
(ControllerAdwaita):
(contains):
(ControllerAdwaita.prototype.createControls):
(ControllerAdwaita.prototype.configureInlineControls):
(ControllerAdwaita.prototype.shouldHaveControls):
(ControllerAdwaita.prototype.reconnectControls):
(ControllerAdwaita.prototype.setStatusHidden):
(ControllerAdwaita.prototype.updateTime):
(ControllerAdwaita.prototype.handleTimeUpdate):
(ControllerAdwaita.prototype.updateHasAudio):
(ControllerAdwaita.prototype.handleMuteButtonMouseOver):
(ControllerAdwaita.prototype.handleVolumeBoxMouseOut):
(ControllerAdwaita.prototype.removeControls):
(ControllerAdwaita.prototype.addControls):
(ControllerAdwaita.prototype.updateFullscreenButton):
(ControllerAdwaita.prototype.updateReadyState):
(ControllerAdwaita.prototype.updateDuration):
(ControllerAdwaita.prototype.setIsLive):
(ControllerAdwaita.prototype.updatePlaying):
(ControllerAdwaita.prototype.updateProgress):
(ControllerAdwaita.prototype.handleCaptionButtonClicked):
(ControllerAdwaita.prototype.buildCaptionMenu):
(ControllerAdwaita.prototype.destroyCaptionMenu):
(ControllerAdwaita.prototype.showCaptionMenu):
(ControllerAdwaita.prototype.hideCaptionMenu):
(ControllerAdwaita.prototype.captionMenuTransitionEnd):
(ControllerAdwaita.prototype.handleCaptionButtonMouseOver):
(ControllerAdwaita.prototype.handleCaptionButtonShowMenu):
(ControllerAdwaita.prototype.handleCaptionButtonMouseOut):
(ControllerAdwaita.prototype.handleCaptionMouseOut):
- Modules/mediacontrols/mediaControlsBase.js:
- PlatformWPE.cmake:
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::extraMediaControlsStyleSheet):
(WebCore::RenderThemeWPE::mediaControlsScript):
(WebCore::RenderThemeWPE::paintMediaSliderTrack):
(WebCore::RenderThemeWPE::paintMediaVolumeSliderTrack):
- platform/wpe/RenderThemeWPE.h:
- 2:16 AM Changeset in webkit [257130] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix for Windows ports
WebKitBuild\Release\WTF\Headers\wtf/RefPtr.h(44): error C2027: use of undefined type 'WebCore::ImageData'
RefPtr<ImageData> is used without defining ImageData.
- platform/graphics/ConcreteImageBuffer.h: Added #include "ImageData.h".
- 12:26 AM Changeset in webkit [257129] by
-
- 4 edits2 adds in trunk
Nullptr crash in RenderStyle::isFlippedBlocksWritingMode when fragment flow gains a new in-flow descendant
https://bugs.webkit.org/show_bug.cgi?id=207296
<rdar://problem/49687828>
Patch by Jack Lee <Jack Lee> on 2020-02-21
Reviewed by Antti Koivisto.
When a multi-column fragment flow gains a new in-flow descendant, we need to call
multiColumnDescendantInserted so RenderMultiColumnSet would be created for the new
descendant.
Source/WebCore:
Test: fast/multicol/fragflow-gains-new-in-flow-descendant-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
LayoutTests:
- TestExpectations:
- fast/multicol/fragflow-gains-new-in-flow-descendant-crash-expected.txt: Added.
- fast/multicol/fragflow-gains-new-in-flow-descendant-crash.html: Added.
Feb 20, 2020:
- 11:44 PM Changeset in webkit [257128] by
-
- 6 edits in trunk
[GTK] Improve user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=206506
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-20
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Stop using our macOS platform quirk for Google Docs and Google Drive. It is not successfully
suppressing the unsupported browser warnings that it was added to avoid. It is also
responsible for complaints from users who do not like seeing macOS-style shortcuts with
the Command key rather than Ctrl.
Replace it with a new Firefox browser quirk. We can avoid the unsupported browser warning in
Google Docs by using this quirk on accounts.youtube.com. There's no need for any other quirk
specific to Google Docs (although removing the macOS platform quirk means we'll instead
begin using the x86_64 Linux quirk that we send to other Google domains). Google Drive will
also use this new quirk.
Also, remove a stale comment instructing developers to test downloading the Hangouts browser
plugin. We no longer support NPAPI, so Google Hangouts is a lost cause until we get WebRTC
working.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/UserAgentQuirks.h:
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::TEST):
- 10:57 PM Changeset in webkit [257127] by
-
- 15 edits6 adds in trunk/Source
[Media in GPU process] Synchronize the properties of video layers in the GPU process with the hosting layer in the web process
https://bugs.webkit.org/show_bug.cgi?id=206132
Reviewed by Jer Noble.
Source/WebCore:
Update the name (for debugging) of the CALayer created by _web_renderLayerWithContextID (The CALayer will not be only used as video layers).
This patch also fixes the ordering issue related to VideoLayerManagerObjC.h and VideoLayerManagerObjC.mm in the Xcode project file.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cocoa/WebCoreCALayerExtras.mm:
(+[CALayer _web_renderLayerWithContextID:]):
Source/WebCore/PAL:
Update the CAContext interface to expose currentContext for external builds.
- pal/spi/cocoa/QuartzCoreSPI.h:
Source/WebKit:
MediaPlayerPrivateRemote creates WKVideoLayerRemote whose sublayer is created by LayerHostingContext::createPlatformLayerForHostingContext().
The WKVideoLayerRemote will be used by the renderer to manage the video element in the Web process. When its size is changed by the renderer,
it applies a transform without changing its actual size, and sends a message to MediaPlayerPrivateProxy in the GPU process
to change the size of the container layer. After that, WKVideoLayerRemote will set its size to the correct one in the Web process side.
We need to use a MachSendRight to synchronize the transactions in the Web process and the GPU process.
We have to use such a process to change the appearance of WKVideoLayerRemote in order to guarantee the smoothness when a user
change the size of a video element.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::load):
(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerContentBoxRect const): Deleted.
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- SourcesCocoa.txt:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::firstVideoFrameAvailable):
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setVideoInlineSizeFenced):
(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/VideoLayerRemote.h: Added.
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h: Added.
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm: Added.
(-[WKVideoLayerRemote init]):
(-[WKVideoLayerRemote dealloc]):
(-[WKVideoLayerRemote mediaPlayerPrivateRemote]):
(-[WKVideoLayerRemote setMediaPlayerPrivateRemote:]):
(-[WKVideoLayerRemote videoSublayer]):
(-[WKVideoLayerRemote setVideoSublayer:]):
(-[WKVideoLayerRemote layoutSublayers]):
(-[WKVideoLayerRemote resolveBounds]):
(WebKit::createVideoLayerRemote):
- WebProcess/WebPage/ios/WebPageIOS.mm: Fixed a unified build failure.
- 7:40 PM Changeset in webkit [257126] by
-
- 2 edits in trunk/Source/WebCore
[First paint] Let optional style recalcs go through while in visually-non-empty state.
https://bugs.webkit.org/show_bug.cgi?id=208020
<rdar://problem/59636549>
Reviewed by Simon Fraser.
This is the final step to ensure we don't end up delaying the qualifiesAsVisuallyNonEmpty check when
the page happens to not trigger synchronous style recalcs.
Here is the optimized flow:
Optional style realc -> FrameView::styleAndRenderTreeDidChange -> qualifiesAsVisuallyNonEmpty -> Document::shouldScheduleLayout true.
This could be a slight regression in certain cases because now we let the optional style recalcs through and
only delay the redundant layouts (as opposed to delay both).
- dom/Document.cpp:
(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::shouldScheduleLayout):
- 7:35 PM Changeset in webkit [257125] by
-
- 32 edits2 copies in trunk
Support in-band metadata cues when loading media in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207904
<rdar://problem/59561647>
Reviewed by Dean Jackson.
Source/WebCore:
No new tests, unskipped existing tests.
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::findIncompleteCue):
(WebCore::InbandDataTextTrack::updateDataCue):
(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):
- html/track/InbandDataTextTrack.h:
- html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue):
- html/track/TextTrack.h:
(WebCore::TextTrack::cuesInternal const):
- html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::cueIndex const):
- platform/SerializedPlatformDataCue.h:
(WebCore::SerializedPlatformDataCue::deserialize const):
(WebCore::SerializedPlatformDataCue::data const):
(WebCore::SerializedPlatformDataCue::isEqual const):
(WebCore::SerializedPlatformDataCue::platformType const):
(WebCore::SerializedPlatformDataCue::encodingRequiresPlatformData const):
(WebCore::SerializedPlatformDataCue::encodableValue const):
- platform/graphics/MediaPlayer.cpp:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
- platform/mac/SerializedPlatformDataCueMac.h:
- platform/mac/SerializedPlatformDataCueMac.mm:
(WebCore::SerializedPlatformDataCue::create):
(WebCore::SerializedPlatformDataCueMac::SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::isEqual const):
(WebCore::toSerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::allowedClassesForNativeValues):
(WebCore::SerializedPlatformDataCueMac::encodableValue const):
(WebCore::jsValueWithAVMetadataItemInContext):
(WebCore::NSDictionaryWithAVMetadataItem):
(WebCore::SerializedPlatformDataCueMac::create): Deleted.
Source/WebKit:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encode):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decodePlatformData):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::setConfiguration):
(WebKit::MediaPlayerPrivateRemote::addDataCue):
(WebKit::MediaPlayerPrivateRemote::addDataCueWithType):
(WebKit::MediaPlayerPrivateRemote::updateDataCue):
(WebKit::MediaPlayerPrivateRemote::removeDataCue):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
- WebProcess/GPU/media/TextTrackPrivateRemote.cpp:
(WebKit::TextTrackPrivateRemote::addGenericCue):
(WebKit::TextTrackPrivateRemote::updateGenericCue):
(WebKit::TextTrackPrivateRemote::removeGenericCue):
(WebKit::TextTrackPrivateRemote::parseWebVTTFileHeader):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueData):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueDataStruct):
(WebKit::TextTrackPrivateRemote::addDataCue):
(WebKit::TextTrackPrivateRemote::addDataCueWithType):
(WebKit::TextTrackPrivateRemote::updateDataCue):
(WebKit::TextTrackPrivateRemote::removeDataCue):
- WebProcess/GPU/media/TextTrackPrivateRemote.h:
LayoutTests:
- gpu-process/TestExpectations:
- 7:04 PM Changeset in webkit [257124] by
-
- 3 edits in trunk/Tools
check-webkit-style: Check if *_EXPORT and *_EXPORT_PRIVATE macros are used under corresponding directories
https://bugs.webkit.org/show_bug.cgi?id=207380
Reviewed by Jonathan Bedard.
Added a new rule 'build/export_macro'.
Removed a obsolete rule 'readability/webkit_export' which was used
only by Chromium port (r148185).
- Scripts/webkitpy/style/checkers/cpp.py:
(_FunctionState.export_macro):
(check_function_definition):
(_unix_path): Added.
(is_generated_file): Use _unix_path.
(check_has_config_header): Ditto.
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_export_macro_check):
(WebKitStyleTest.test_webkit_export_check): Deleted.
- 6:57 PM Changeset in webkit [257123] by
-
- 2 edits in trunk/Source/WebCore
Fix crash in Page::updateRendering when document has no domWindow
https://bugs.webkit.org/show_bug.cgi?id=207975
<rdar://56999099>
Patch by Sunny He <sunny_he@apple.com> on 2020-02-20
Reviewed by Ryosuke Niwa.
When a subframe is navigated, a new document is created and
the window is transfered asynchronously. It is possible to have
a call to updateRendering in the middle of this process, resulting
in an attempt to update a document with no window. Add a check for
this case and skip such documents.
No test, since this crash relies on sensitive timing that cannot be
consistently replicated in a test case.
- page/Page.cpp:
(WebCore::Page::updateRendering):
- 6:47 PM Changeset in webkit [257122] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit
Cherry-pick r256933. rdar://problem/59618839
[iOS] Safari sometimes crashes under ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=207929
<rdar://problem/59493326>
Reviewed by Tim Horton.
Make ViewGestureController::beginSwipeGesture robust in the case where the target back/forward item no longer
exists. This means that a back/forward target item existed when UIKit called into us in canSwipeInDirection, but
this item was removed by the time beginSwipeGesture is called.
A couple of conditions could make this possible, such as handling incoming synchronous IPC in the UI process
that could change the back/forward list before sending outgoing IPC to the web process; alternately, an SPI
client could be overriding -_webViewDidBeginNavigationGesture: to run some logic that removes the would-be
target back/forward item.
To protect against these scenarios, null-check targetItem before attempting to dereference it; if it is null,
then reset some state that might've been set as a result of beginning the swipe (that is, m_activeGestureType
and m_currentGestureID) and then immediately bail before attempting to install the snapshot view and proceed
with the swipe.
- UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:33 PM Changeset in webkit [257121] by
-
- 15 edits in branches/safari-609.1.20.111-branch
Apply patch. rdar://problem/59576775
- 6:33 PM Changeset in webkit [257120] by
-
- 17 edits in branches/safari-609.1.20.111-branch/Source/WebCore
Apply patch. rdar://problem/59576779
- 6:33 PM Changeset in webkit [257119] by
-
- 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit
Cherry-pick r256932. rdar://problem/59618840
Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>
Reviewed by Geoffrey Garen.
Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::updateCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:32 PM Changeset in webkit [257118] by
-
- 9 edits2 adds in branches/safari-609.1.20.111-branch
Cherry-pick r256859. rdar://problem/59612087
[macOS] Web process may crash under ServicesOverlayController::buildPotentialHighlightsIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=207899
<rdar://problem/55658207>
Reviewed by Tim Horton and Simon Fraser.
Source/WebCore:
Mitigates a null pointer crash in ServicesOverlayController::buildPotentialHighlightsIfNeeded(), wherein the
focused frame may not have a FrameView when the ServicesOverlayController's selection invalidation timer fires.
This is possible if, while being focused, the newly focused subframe is unparented and reparented, which causes
it to momentarily have a null view. During this time, if a selection change had occurred earlier in the runloop,
it will schedule the page overlay controller invalidation timer, which will fire and discover that the currently
focused frame no longer has a FrameView.
Test: editing/selection/selection-change-in-disconnected-frame-crash.html
- page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::buildSelectionHighlight):
Source/WebKit:
Add another missing null check on iOS, for the case where FrameView is null.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState const):
Tools:
Make it possible to run tests on macOS with services controls enabled, via a new TestOptions flag.
- WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView):
LayoutTests:
Add a new layout test to verify that we don't crash under this circumstance.
- editing/selection/selection-change-in-disconnected-frame-crash-expected.txt: Added.
- editing/selection/selection-change-in-disconnected-frame-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:32 PM Changeset in webkit [257117] by
-
- 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit
Cherry-pick r256790. rdar://problem/59575905
Data detectors do not trigger on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=207860
<rdar://problem/59038913>
Reviewed by Tim Horton.
The lookup gesture which run data detection needs touch information to function. Allow touches to be sent to the gesture.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:16 PM Changeset in webkit [257116] by
-
- 1 edit in branches/safari-609.1.20.0-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652987
- 6:13 PM Changeset in webkit [257115] by
-
- 1 edit in branches/safari-609.1.20.111-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652979
- 6:11 PM Changeset in webkit [257114] by
-
- 1 edit in branches/safari-609-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652984
- 6:07 PM Changeset in webkit [257113] by
-
- 8 edits in branches/safari-609.1.20.111-branch/Source
Versioning.
- 6:06 PM Changeset in webkit [257112] by
-
- 13 edits in branches/safari-609.1.20.0-branch
Revert r256995. rdar://problem/59478837
- 6:06 PM Changeset in webkit [257111] by
-
- 4 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Revert r256996. rdar://problem/59478911
- 6:06 PM Changeset in webkit [257110] by
-
- 17 edits in branches/safari-609.1.20.0-branch/Source/WebCore
Apply patch. rdar://problem/59298138
Apply the second patch.
- 6:06 PM Changeset in webkit [257109] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit
Cherry-pick r257013. rdar://problem/59614284
Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973
Reviewed by Chris Dumez.
Use RefPtr to store Frame*.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:40 PM Changeset in webkit [257108] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256933. rdar://problem/59618836
[iOS] Safari sometimes crashes under ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=207929
<rdar://problem/59493326>
Reviewed by Tim Horton.
Make ViewGestureController::beginSwipeGesture robust in the case where the target back/forward item no longer
exists. This means that a back/forward target item existed when UIKit called into us in canSwipeInDirection, but
this item was removed by the time beginSwipeGesture is called.
A couple of conditions could make this possible, such as handling incoming synchronous IPC in the UI process
that could change the back/forward list before sending outgoing IPC to the web process; alternately, an SPI
client could be overriding -_webViewDidBeginNavigationGesture: to run some logic that removes the would-be
target back/forward item.
To protect against these scenarios, null-check targetItem before attempting to dereference it; if it is null,
then reset some state that might've been set as a result of beginning the swipe (that is, m_activeGestureType
and m_currentGestureID) and then immediately bail before attempting to install the snapshot view and proceed
with the swipe.
- UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:40 PM Changeset in webkit [257107] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256932. rdar://problem/59618845
Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>
Reviewed by Geoffrey Garen.
Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::updateCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:25 PM Changeset in webkit [257106] by
-
- 2 edits in trunk/Source/WebKit
Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037
<rdar://problem/59480381>
Reviewed by Brent Fulgham.
No new tests. This patch just adds a domain name to a quirks function.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):
fidelity.com and its subdomains now return false.
- 4:41 PM Changeset in webkit [257105] by
-
- 1 copy in tags/Safari-609.1.20.111.1
Tag Safari-609.1.20.111.1.
- 4:39 PM Changeset in webkit [257104] by
-
- 8 edits in branches/safari-609.1.20.111-branch/Source
Versioning.
- 4:20 PM Changeset in webkit [257103] by
-
- 2 edits in trunk/Source/WebKit
WebIDBServer resume should return early if suspend does not happen
https://bugs.webkit.org/show_bug.cgi?id=208027
<rdar://problem/59617654>
Reviewed by Geoffrey Garen.
We should not try releasing a lock that is not held.
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::resume):
- 4:15 PM Changeset in webkit [257102] by
-
- 1 copy in branches/safari-609.1.20.111-branch
New branch.
- 4:12 PM Changeset in webkit [257101] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/cache-storage/cache-put-keys.https.any.worker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208036
Unreviewed test gardening.
Removed the old slow expectation because it no longer appears to be relevant, added pass on failing.
- platform/ios-simulator-wk2/TestExpectations:
- 3:45 PM Changeset in webkit [257100] by
-
- 2 edits in trunk/LayoutTests
(r256583) [ iOS ] http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207944
<rdar://problem/59592361>
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:39 PM Changeset in webkit [257099] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r256805?) [ Mojave wk2 Release ] webrtc/video-replace-muted-track.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207941
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:25 PM Changeset in webkit [257098] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Unreviewed re-application of patch. rdar://problem/59611915
- 3:16 PM Changeset in webkit [257097] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Expose caret color for clients
https://bugs.webkit.org/show_bug.cgi?id=207963
<rdar://problem/57383170>
Reviewed by Daniel Bates.
Expose caret color for clients to use.
- WebView/WebFrame.mm:
(-[WebFrame textInsertionColor]):
- WebView/WebFramePrivate.h:
- 3:12 PM Changeset in webkit [257096] by
-
- 4 edits1 add in trunk/Tools
[Win][MiniBrowser] Add prettier toolbar button icons
https://bugs.webkit.org/show_bug.cgi?id=207999
Reviewed by Ross Kirsling.
Use a custom toolbar button icons instead of system stock icons.
Fixed a bug toolbar button dropdown arrows always looked being
hovered. TBSTYLE_FLAT should be given.
Removed the window border line of Progress Indicator.
- MiniBrowser/win/MainWindow.cpp:
(MainWindow::createToolbar):
- MiniBrowser/win/MiniBrowserLib.rc:
- MiniBrowser/win/MiniBrowserLibResource.h:
- MiniBrowser/win/toolbar.bmp: Added.
- 3:01 PM Changeset in webkit [257095] by
-
- 8 edits in branches/safari-609.1.20.0-branch/Source
Versioning.
- 2:59 PM Changeset in webkit [257094] by
-
- 2 edits in trunk/Source/WebCore
[First paint] FrameView::loadProgressingStatusChanged should check m_firstVisuallyNonEmptyLayoutMilestoneIsPending
https://bugs.webkit.org/show_bug.cgi?id=208008
<rdar://problem/59630957>
Reviewed by Antti Koivisto.
If we haven't had a chance to issue a visually-non-empty milestone, we definitely need to check the content again when the load
is finally completed.
- page/FrameView.cpp:
(WebCore::FrameView::loadProgressingStatusChanged):
- 2:54 PM Changeset in webkit [257093] by
-
- 5 edits in branches/safari-609-branch/Source
Cherry-pick r256806. rdar://problem/59576023
Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
https://bugs.webkit.org/show_bug.cgi?id=207876
Reviewed by Wenson Hsieh.
- wtf/Platform.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): (-[WKContentView _removeDefaultGestureRecognizers]): (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView gestureRecognizer:shouldReceiveTouch:]): For symmetry's sake, introduce a HAVE for this gesture.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:33 PM Changeset in webkit [257092] by
-
- 1 copy in tags/Safari-609.1.20.1.2
Tag Safari-609.1.20.1.2.
- 2:31 PM Changeset in webkit [257091] by
-
- 2 edits in trunk/LayoutTests
Regression: fast/hidpi/image-* are failing consistently on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=207038#c8
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:31 PM Changeset in webkit [257090] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Fix race in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=208001
Reviewed by Xabier Rodriguez-Calvar.
TextCombinerGStreamer uses the CAPS event to determine whether adding
a webvttenc between the text track pad and the funnel element used to
be able to display several subtitles at the same time.
The way this was done previously had a race though: all text track
pads were preemptively linked directly to the funnel, only adding the
webvttenc element later in the middle when receiving the CAPS event.
When two or more text tracks were present, it wasn't infrequent that
one track had its CAPS event processed (causing the webvttenc element
to be added) and propagated (fixating the funnel caps) before another
track attempted caps negotiation. Because the pads were connected to
the funnel preemptively, and because without the webvttenc element the
caps of the text pad don't match the funnel's, this causes a caps
mismatch error, stopping playback completely. The CAPS event is
therefore never sent.
To avoid this race, we must avoid linking elements until we get the
CAPS events, when we actually know where we should link them to,
therefore avoiding early caps negotiation errors.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadDispose):
(webkitTextCombinerPadEvent):
(webkitTextCombinerRequestNewPad):
(webkitTextCombinerReleasePad):
(webkit_text_combiner_class_init):
(webkitTextCombinerPadFinalize): Deleted.
- 2:23 PM Changeset in webkit [257089] by
-
- 5 edits in trunk
NetworkCache should use 4KB threshold for mmap-ed files instead of 16KB
https://bugs.webkit.org/show_bug.cgi?id=207882
Reviewed by Alex Christensen.
Source/WebKit:
We found that a lot of Vectors in Membuster is holding resource content. This is because we have 16KB threshold for mmap-ed files.
If a file is smaller than 16KB, it is copied to Vector instead. But this is costly in terms of memory. If we use mmap-ed files,
it becomes named-pages instead of anonymous-pages. File-backed non-dirty named-pages have a lot of benefit.
- The application is offering a hint that pages are file-backed. This means that OS can purge them at any time since the content can be recovered from the disk. This is cheaper than swapping / compressing anonymous pages since just discarding works.
- The application is offering a hint that pages have spatial locality. Purging pages in one named-pages region is better compared to purging the same # of anonymous pages randomly. Anonymous pages are split by malloc implementation and access pattern of pages in one VA is random. On the other hand, named-pages are accessed together because it is file, and file typically has sequential locality. And recovery of named pages are also cheap compared to anonymous pages since OS can prefetch pages once access happens because of sequential locality of files. This tendency makes OS like purging named pages instead of anonymous pages. In WebKit use case, this works perfectly. CachedResource typically has decoded content. So typically WebProcess does not access SharedBuffer after the content is decoded.
This patch reduces the threshold from 16KB to page size (4KB in macOS, 16KB in iOS). This is pre-2015 behavior.
This offers 2.56% progression with 98% probability in Membuster.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::maximumInlineBodySize):
(WebKit::NetworkCache::estimateRecordsSize):
(WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):
LayoutTests:
The test is assuming that 12KB file is served via non-mmap-file.
This assumption is flaky and broken by this change. For now, we pick smaller
file to meet this assumption.
- http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:
- http/tests/inspector/network/resource-sizes-disk-cache.html:
- 2:21 PM Changeset in webkit [257088] by
-
- 8 edits in branches/safari-609.1.20.1-branch/Source
Versioning.
- 2:13 PM Changeset in webkit [257087] by
-
- 2 edits in trunk/Tools
Update run-webkit-tests help description for skip-failing-tests
https://bugs.webkit.org/show_bug.cgi?id=208031
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
- 2:10 PM Changeset in webkit [257086] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:05 PM Changeset in webkit [257085] by
-
- 16 edits1 delete in trunk
[WebAuthn] Replace DeviceIdentity.framework
https://bugs.webkit.org/show_bug.cgi?id=207985
<rdar://problem/59369223>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch replaces the DeviceIdentity.framework with a new framework that better suits our needs.
The new experimental authentication logic is handled by WebKtAdditions. Please refer to the radar
for detailed information.
Besides the replacement, this patch also:
1) changes how user consent is obtained to avoid multiple prompts for biometric input.
2) removes keychain workarounds for DeviceIdentity given the credential private key is now under our possession.
3) removes everything that is related to DeviceIdentity.
Covered by new tests within existing test files.
- Configurations/WebKit.xcconfig:
- Platform/spi/Cocoa/DeviceIdentitySPI.h: Removed.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::toNSData):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
- UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
(WebKit::LocalConnection::getAttestation const):
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::createCredentialPrivateKey const):
(WebKit::MockLocalConnection::getAttestation const):
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/PlatformHave.h:
LayoutTests:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-create-success-local.https.html:
- 2:05 PM WebKitGTK/2.26.x edited by
- (diff)
- 2:05 PM Changeset in webkit [257084] by
-
- 3 edits1 add in branches/safari-610.1.4-branch
Cherry-pick r256766. rdar://problem/59618203
[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
JSTests:
- wasm/regress/regress-256665.js: Added. (f):
Source/JavaScriptCore:
When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.
- wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:50 PM Changeset in webkit [257083] by
-
- 5 edits in trunk/Source
AX: Adopt _AXSCopyPathForAccessibilityBundle for WebKit
https://bugs.webkit.org/show_bug.cgi?id=207828
Source/WebKit:
Use the new SPI _AXSCopyPathForAccessibilityBundle.
Patch by Eric Liang <ericliang@apple.com> on 2020-02-20
Reviewed by Darin Adler.
Covered by checkAccessibilityWebProcessLoaderBundleIsLoaded
- Platform/spi/ios/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::webProcessLoaderAccessibilityBundlePath):
Source/WTF:
Use the _AXSCopyPathForAccessibilityBundle new API. Updated the required SDK version.
Patch by Eric Liang <ericliang@apple.com> on 2020-02-20
Reviewed by Darin Adler.
- wtf/PlatformHave.h:
- 1:21 PM Changeset in webkit [257082] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/tests/workers/service/registration-clear-redundant-worker.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208030
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:14 PM Changeset in webkit [257081] by
-
- 2 edits in trunk/Source/WebCore
[First paint] Let's check visually-non-empty state in FrameView::styleAndRenderTreeDidChange
https://bugs.webkit.org/show_bug.cgi?id=208013
<rdar://problem/59633427>
Reviewed by Antti Koivisto.
This patch completely decouples m_contentQualifiesAsVisuallyNonEmpty and m_firstVisuallyNonEmptyLayoutMilestoneIsPending.
Now FrameView can be in the state where m_contentQualifiesAsVisuallyNonEmpty is true while
m_firstVisuallyNonEmptyLayoutMilestoneIsPending is false (which is a perfectly valid state to be in).
This will enable us to delay optional layouts after style recalcs when the content is still visually empty.
(If a FrameView::isVisuallyNonEmpty() caller regresses after this change, it means that the caller is interested in
whether the non-empty milestone has been issued or not and it needs to switch over to a different API.)
- page/FrameView.cpp:
(WebCore::FrameView::styleAndRenderTreeDidChange):
(WebCore::FrameView::loadProgressingStatusChanged):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
- 1:12 PM Changeset in webkit [257080] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r256784): [ iOS ] fast/images/exif-orientation-webgl-texture.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207943
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:56 PM Changeset in webkit [257079] by
-
- 6 edits in trunk/Source/WebKit
Unreviewed, rolling out r257045.
https://bugs.webkit.org/show_bug.cgi?id=208024
Membuster ~16% regression (Requested by yusukesuzuki on
#webkit).
Reverted changeset:
"Regression(r246188) WebProcess is launched too eagerly when
[WKWebView _restoreSessionState] is called"
https://bugs.webkit.org/show_bug.cgi?id=207908
https://trac.webkit.org/changeset/257045
- 12:06 PM Changeset in webkit [257078] by
-
- 9 edits2 deletes in trunk/Source
[Curl] Simplify Cookie class.
https://bugs.webkit.org/show_bug.cgi?id=207930
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-02-20
Reviewed by Don Olmstead.
Removed redundant CookieJarCurl.cpp and made NetworkDataTaskCurl access CookieJarDB directly.
CookieJarCurl was used for supporting file based cookie database but now it is no longer used.
No new tests. Covered by existing tests.
Source/WebCore:
- platform/Curl.cmake:
- platform/network/NetworkStorageSession.h:
- platform/network/curl/CookieJarCurl.cpp: Removed.
- platform/network/curl/CookieJarCurl.h: Removed.
- platform/network/curl/CurlResourceHandleDelegate.cpp:
(WebCore::handleCookieHeaders):
- platform/network/curl/NetworkStorageSessionCurl.cpp:
(WebCore::cookiesForSession):
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookiesFromHTTPResponse const):
(WebCore::NetworkStorageSession::setCookieAcceptPolicy const):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getAllCookies):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::createCurlRequest):
Source/WebKit:
- NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp:
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::appendCookieHeader):
(WebKit::NetworkDataTaskCurl::handleCookieHeaders):
- 12:06 PM Changeset in webkit [257077] by
-
- 4 edits in trunk
REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>
Reviewed by Geoffrey Garen.
Source/WebKit:
Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
(TEST):
- 11:42 AM Changeset in webkit [257076] by
-
- 2 edits in trunk/Source/WTF
Unreviewed comment fix.
- wtf/RunLoop.cpp:
(WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
Words by Simon.
- 11:39 AM Changeset in webkit [257075] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 Debug ] http/tests/history/back-to-post.php is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208022
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:36 AM Changeset in webkit [257074] by
-
- 6 edits in trunk/Source/WebCore
Move system listeners from PlatformMediaSessionManager to MediaSessionManagerCocoa
https://bugs.webkit.org/show_bug.cgi?id=208011
Reviewed by Eric Carlson.
We will want the listeners to be running in GPUProcess.
The plan is to have a generic PlatformMediaSessionManager that is hooked to GPUProcess
through a counterpart session manager in GPUProcess.
Given listeners are only supported in Cocoa ports, it is fine moving them to MediaSessionManagerCocoa.
This way we can decide to instantiate either a MediaSessionManagerCocoa in WebProcess or in GPUProcess.
For this to work, we have to make addSession virtual to be able to create the listeners lazily when adding a session.
No change of behavior.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::hasNoSession const):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::setCurrentSession):
(WebCore::PlatformMediaSessionManager::processDidReceiveRemoteControlCommand):
(WebCore::PlatformMediaSessionManager::computeSupportsSeeking const):
(WebCore::PlatformMediaSessionManager::processSystemWillSleep):
(WebCore::PlatformMediaSessionManager::processSystemDidWake):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(MediaSessionManagerCocoa::updateSessionState):
(MediaSessionManagerCocoa::addSession):
(MediaSessionManagerCocoa::removeSession):
(MediaSessionManagerCocoa::setCurrentSession):
- testing/Internals.cpp:
(WebCore::Internals::postRemoteControlCommand):
(WebCore::Internals::simulateSystemSleep const):
(WebCore::Internals::simulateSystemWake const):
- 11:33 AM Changeset in webkit [257073] by
-
- 4 edits in trunk
GraphicsContextGLOpenGL::transformFeedbackVaryings passes deallocated memory to gl::TransformFeedbackVaryings
https://bugs.webkit.org/show_bug.cgi?id=207526
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by WebGL2 Transform Feedback tests.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
LayoutTests:
Unskip known WebGL 2.0.0 conformance suite progressions.
- 11:22 AM Changeset in webkit [257072] by
-
- 7 edits in trunk/Source
[macOS] Disable RunLoop function dispatch when there is a pending rendering update
https://bugs.webkit.org/show_bug.cgi?id=207931
Reviewed by Geoffrey Garen.
Source/WebCore:
Functions dispatched via RunLoop::dispatch() are executed before the rendering update runloop observer.
This can significantly delay rendering updates as asyncronous IPC is handled via this mechanism.
Most importantly network resources are dispatched to the main thread this way, sometimes triggering expensive
synchronous parsing and script execution.
This patch adds a mechanims for disabling function dispatch temporarily while there is a pending rendering update.
- dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::breakToAllowRenderingUpdate):
Source/WebKit:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdateRunLoopObserver):
Don't do anything if the runloop is already scheduled. This frequently happens
from inside updateRendering.
Source/WTF:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
Simplify the code by factoring it into a single loop.
Bail out if the runloop is initially suspended or if it becomes suspended by function execution.
Clear the suspended state so it last a single cycle only.
(WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
Set the suspended state and wake up the runloop to guarantee the state is cleared.
- wtf/RunLoop.h:
- 11:17 AM Changeset in webkit [257071] by
-
- 4 edits in trunk/Source/WebKit
[iOS] GPUProcess needs to provide the parent PID before starting camera capture
https://bugs.webkit.org/show_bug.cgi?id=208009
Reviewed by Eric Carlson.
Like we do when capturing in WebProcess, we need to provide the parent PID before starting camera capture.
Implement this in GPU process whenever creating a camera source.
- GPUProcess/GPUConnectionToWebProcess.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
(WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::willStartCameraCapture):
- 11:05 AM Changeset in webkit [257070] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 Release ] perf/clone-with-focus.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208018
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:39 AM Changeset in webkit [257069] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Debug ] http/tests/websocket/tests/hybi/no-subprotocol.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208014
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:38 AM Changeset in webkit [257068] by
-
- 2 edits in branches/safari-609.1.20.1-branch/Source/WebCore
WebCore fails to build: use of undeclared identifier 'CGContextDrawPDFPageWithAnnotations'
<rdar://problem/59623059>
- platform/graphics/cg/PDFDocumentImage.cpp:
- 9:40 AM Changeset in webkit [257067] by
-
- 2 edits in trunk
[GTK][WPE] Not set ccache compiler prefix if ccache its already the compiler binary in path.
https://bugs.webkit.org/show_bug.cgi?id=208007
Reviewed by Tim Horton.
Detect if the compiler binary already points to the ccache binary and in that case don't
set the ccache compiler prefix. Also export CCACHE_SLOPPINESS=time_macros if its not
defined to other thing on the environment and add a some logging of related messages.
- Source/cmake/WebKitCCache.cmake:
- 9:35 AM WPE edited by
- (diff)
- 9:34 AM Changeset in webkit [257066] by
-
- 4 edits1 move in trunk
WKWebView with non-zero origin has the wrong top content inset with NSWindowStyleMaskFullSizeContentView
https://bugs.webkit.org/show_bug.cgi?id=207998
<rdar://problem/40942425>
Reviewed by Sam Weinig.
Source/WebKit:
New API tests: TopContentInset.{AutomaticAdjustment, AutomaticAdjustmentDisabled, AutomaticAdjustmentDoesNotAffectInsetViews}
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateContentInsetsIfAutomatic):
Previously, a WKWebView with frame.origin anywhere other than {0, 0}
would end up with the same top content inset as if it overlapped the
titlebar.
It's not clear what the original code was going for; we can determine
the overlapping portion of the contentLayoutRect by simply converting
it from window coordinates to WKWebView coordinates and looking at the
origin (ensuring we don't let it go negative).
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/TopContentInset.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/FullscreenTopContentInset.mm.
(-[FullscreenChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
Add some tests for top content insets.
- 9:20 AM Changeset in webkit [257065] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] crypto/subtle/rsa-indexeddb.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208010
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:44 AM Changeset in webkit [257064] by
-
- 3 edits2 adds in trunk
[LFC] Sometimes subframes don't even have document elements.
https://bugs.webkit.org/show_bug.cgi?id=208006
<rdar://problem/59629147>
Source/WebCore:
Reviewed by Antti Koivisto.
Test: fast/layoutformattingcontext/subframe-with-display-none-html.html
Do not try to layout a formatting context when it has no content at all.
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
LayoutTests:
Reviewed by Antti Koivisto.
- fast/layoutformattingcontext/subframe-with-display-none-html-expected.html: Added.
- fast/layoutformattingcontext/subframe-with-display-none-html.html: Added.
- 8:37 AM Changeset in webkit [257063] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257025) [ Mac wk2 ] http/tests/inspector/network/resource-sizes-disk-cache.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208004
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:22 AM Changeset in webkit [257062] by
-
- 2 edits in trunk/Source/WebCore/PAL
NSUserDefaultsSPI.h is copied to an incorrect path
https://bugs.webkit.org/show_bug.cgi?id=207977
rdar://problem/59609174
Reviewed by Per Arne Vollan.
- PAL.xcodeproj/project.pbxproj: Change the header from Private to Project - these
headers are copied into the right location by a script phase, so Xcode shouldn't
do it itself.
- 8:14 AM Changeset in webkit [257061] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r257025.
This commit broke a test on Mac wk2.
Reverted changeset:
"NetworkCache should use 4KB threshold for mmap-ed files
instead of 16KB"
https://bugs.webkit.org/show_bug.cgi?id=207882
https://trac.webkit.org/changeset/257025
- 7:49 AM Changeset in webkit [257060] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/zero-initialize-values.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208005
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:36 AM Changeset in webkit [257059] by
-
- 3 edits2 adds in trunk
[LFC][BFC] Fix geometryForBox::isOkToAccessDisplayBox for EscapeReason::FindFixedHeightAncestorQuirk
https://bugs.webkit.org/show_bug.cgi?id=207983
<rdar://problem/59615246>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/height-percentage-quirk-to-icb.html
The height percentage quirk walks the ancestor chain and looks for fixed height block level boxes.
It can potentially walk all the way up to the ICB. This patch gives access to the ICB's geometry when
FormattingContext::geometryForBox() has EscapeReason::FindFixedHeightAncestorQuirk.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometryForBox const):
LayoutTests:
- fast/layoutformattingcontext/height-percentage-quirk-to-icb-expected.html: Added.
- fast/layoutformattingcontext/height-percentage-quirk-to-icb.html: Added.
- 7:27 AM Changeset in webkit [257058] by
-
- 2 edits in trunk/Tools
results.webkit.org: Correctly report JSC tests for windows (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=207910
Unreviewed infrastructure fix.
- Scripts/run-javascriptcore-tests:
(configurationForUpload): Use the major version instead of the sub-minor version
for version name.
- 7:24 AM Changeset in webkit [257057] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257025?) [ Mac wk2 ] http/tests/inspector/network/resource-sizes-disk-cache.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208004
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:19 AM Changeset in webkit [257056] by
-
- 3 edits2 adds in trunk
[LFC][Out-of-flow] FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned should ignore inline boxes
https://bugs.webkit.org/show_bug.cgi?id=207994
<rdar://problem/59618280>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling.html
https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-height
"For the purposes of this section and the next, the term "static position" (of an element) refers, roughly,
to the position an element would have had in the normal flow."
This does not seem to be well-defined for sibling inline boxes. Let's just stick with block level boxes for now.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
LayoutTests:
- fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling-expected.html: Added.
- fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling.html: Added.
- 7:00 AM Changeset in webkit [257055] by
-
- 9 edits in trunk
[CMake] Add WebP targets
https://bugs.webkit.org/show_bug.cgi?id=207982
Reviewed by Adrian Perez de Castro.
.:
Modernize the FindWebP.cmake module so it creates targets that can be
referenced rather than using WEBP_LIBRARIES and WEBP_INCLUDE_DIRS.
Also making demux a component within the module, and allowing alternate names
for the library to be set by the platform.
- Source/cmake/FindWebP.cmake:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWinCairo.cmake:
Source/WebCore:
Use the WebP targets.
- platform/ImageDecoders.cmake:
- 6:46 AM Changeset in webkit [257054] by
-
- 6 edits in trunk
Lazy load images using base url at parse time
https://bugs.webkit.org/show_bug.cgi?id=207902
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-20
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test results.
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-expected.txt:
Source/WebCore:
The spec says to use the base url at parse time for request
url, ignoring changes to base url after that [1]. To fix this
add a new state LoadImmediately to LazyImageLoadState where
the parse time url from the initial request is reused.
[1] https://html.spec.whatwg.org/multipage/images.html#update-the-image-data
Tests: imported/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html
imported/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::loadDeferredImage):
- loader/ImageLoader.h:
- 6:28 AM Changeset in webkit [257053] by
-
- 14 edits in trunk
[CMake] Add WPE::libwpe target
https://bugs.webkit.org/show_bug.cgi?id=207970
Reviewed by Adrian Perez de Castro.
.:
Redo the WPE find module to export a target.
- Source/cmake/FindWPE.cmake:
Source/WebCore:
Use the WPE::libwpe target.
- PlatformGTK.cmake:
- PlatformPlayStation.cmake:
- PlatformWPE.cmake:
Source/WebKit:
Use the WPE::libwpe target.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
Tools:
Use the WPE::libwpe target.
- MiniBrowser/wpe/CMakeLists.txt:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/glib/PlatformWPE.cmake:
- wpe/backends/CMakeLists.txt:
- 6:06 AM Changeset in webkit [257052] by
-
- 2 edits in trunk/Source/WebCore
[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange] must run on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=207958
Reviewed by Darin Adler.
Covered by existing tests.
[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange]
calls into TextIterator and Node, thus it must be dispatched to the
main thread.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
- 5:06 AM Changeset in webkit [257051] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening of Web inspector tests.
Unreviewed gardening.
Mark all Web test inspector tests as slow Debug and some timing out.
- platform/gtk/TestExpectations:
- 2:40 AM Changeset in webkit [257050] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Use custom colors for text and listbox selection
https://bugs.webkit.org/show_bug.cgi?id=207836
Reviewed by Adrian Perez de Castro.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformActiveSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformInactiveSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformActiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformInactiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeWPE::paintTextField):
- platform/wpe/RenderThemeWPE.h:
- 2:32 AM Changeset in webkit [257049] by
-
- 7 edits in trunk/Source/WebCore
[WPE] Use the theme to render the focus ring
https://bugs.webkit.org/show_bug.cgi?id=207758
Reviewed by Adrian Perez de Castro.
This makes form controls consistent with elements having an auto outline.
- PlatformWPE.cmake: Add platform/wpe to include dirs.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing): Use ThemeWPE::focusColor.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::platformFocusRingColor const): Implement it to return the focus color used by ThemeWPE.
- platform/wpe/RenderThemeWPE.h:
- platform/wpe/ThemeWPE.cpp:
(WebCore::ThemeWPE::focusColor): Return the focus color.
(WebCore::ThemeWPE::paintFocus): Add new methods receiving a path or list of rectangles and a color.
- platform/wpe/ThemeWPE.h:
- 2:03 AM Changeset in webkit [257048] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Add support for rendering sliders for range elements
https://bugs.webkit.org/show_bug.cgi?id=207694
Reviewed by Adrian Perez de Castro.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::supportsFocusRing const):
(WebCore::RenderThemeWPE::paintSliderTrack):
(WebCore::RenderThemeWPE::adjustSliderThumbSize const):
(WebCore::RenderThemeWPE::paintSliderThumb):
- platform/wpe/RenderThemeWPE.h:
- 1:36 AM Changeset in webkit [257047] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, mark several WPT's CSS animation tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=207988
Unreviewed gardening.
- platform/gtk/TestExpectations: