Timeline
Sep 29, 2021:
- 10:41 PM Changeset in webkit [283303] by
-
- 4 edits10 adds in trunk/LayoutTests
Import WPT push api tests
https://bugs.webkit.org/show_bug.cgi?id=230945
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- web-platform-tests/push-api/META.yml: Added.
- web-platform-tests/push-api/idlharness.https.any-expected.txt: Added.
- web-platform-tests/push-api/idlharness.https.any.html: Added.
- web-platform-tests/push-api/idlharness.https.any.js: Added.
- web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt: Added.
- web-platform-tests/push-api/idlharness.https.any.serviceworker.html: Added.
- web-platform-tests/push-api/idlharness.https.any.worker-expected.txt: Added.
- web-platform-tests/push-api/idlharness.https.any.worker.html: Added.
- web-platform-tests/push-api/w3c-import.log: Added.
LayoutTests:
- platform/mac-wk1/TestExpectations:
Skip tests in WK1
- 10:39 PM Changeset in webkit [283302] by
-
- 3 edits2 adds in trunk/LayoutTests
Import WPT notification service worker test
https://bugs.webkit.org/show_bug.cgi?id=230944
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/notifications/idlharness.https.any.serviceworker.html: Added.
LayoutTests:
- platform/mac-wk1/TestExpectations:
Skip test in WK1
- 10:30 PM Changeset in webkit [283301] by
-
- 2 edits in trunk/Source/WebCore
GPUP Cocoa GraphicsContextGLOpenGL should check for ANGLE presence
https://bugs.webkit.org/show_bug.cgi?id=230946
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-29
Reviewed by Antti Koivisto.
For consistency, avoid crashing the GPUP mode when trying
to create GraphicsContextGLOpenGL when the ANGLE-shared dylib
is not present.
No new tests, refactor.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::isANGLEAvailable):
(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::makeContextCurrent):
(WebCore::InitializeEGLDisplay): Deleted.
- 10:27 PM Changeset in webkit [283300] by
-
- 3 edits1 add in trunk
DFG strength reduction on % operator should handle an INT_MIN divisor.
https://bugs.webkit.org/show_bug.cgi?id=230391
<rdar://problem/83229740>
Reviewed by Robin Morisset.
JSTests:
- stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.
Source/JavaScriptCore:
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- 10:17 PM Changeset in webkit [283299] by
-
- 2 edits in trunk/Source/WebCore
Cocoa GraphicsContextGLOpenGL should be more robust in destruction
https://bugs.webkit.org/show_bug.cgi?id=230940
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-29
Reviewed by Antti Koivisto.
Delete resources based on checking if they exist, not based on
a flag that should cause them to exist. Currently the constructor can return early,
so various resources might not exist even if their flag condition would
indicate they should.
No new tests, refactor.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
- 10:00 PM Changeset in webkit [283298] by
-
- 2 edits in trunk/Tools
Terminate PCM daemon before and after unit test that uses it
https://bugs.webkit.org/show_bug.cgi?id=230191
In r282368 I added a unit test that creates a daemon, uses it, then terminates it.
On some bots it has been timing out. Once it starts timing out, it probably won't stop because
it won't get to the part of the test that terminates the problematic daemon.
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- 9:18 PM Changeset in webkit [283297] by
-
- 2 edits in trunk/Source/WebKit
[WebXR] Hold a foreground assertion for the duration of the immersive session
https://bugs.webkit.org/show_bug.cgi?id=230991
Patch by Ada Chan <ada.chan@apple.com> on 2021-09-29
Reviewed by Chris Dumez.
- UIProcess/XR/PlatformXRSystem.cpp:
(WebKit::PlatformXRSystem::initializeTrackingAndRendering):
- 7:33 PM Changeset in webkit [283296] by
-
- 4 edits in trunk/Source/WebCore
Minor cleanup of some rubber-banding code in ScrollingEffectsController
https://bugs.webkit.org/show_bug.cgi?id=230981
Reviewed by Tim Horton.
As a precursor to unraveling some of the complexity of the rubber-banding code,
tidy up naming and code in ScrollingEffectsController::handleWheelEvent(). No
behavior change.
- platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::unacceleratedScrollingDelta const):
(WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaX const): Deleted.
(WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaY const): Deleted.
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollingEffectsController.mm:
(WebCore::convertToProminentAxisFavoringVertical):
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::wheelDeltaBiasingTowardsVertical):
- 7:19 PM Changeset in webkit [283295] by
-
- 43 edits1 add in trunk
Add support for running service workers on the main thread
https://bugs.webkit.org/show_bug.cgi?id=230649
Reviewed by Alex Christensen.
Source/WebCore:
Add support for running service workers on the main thread (off by default).
This is to support use cases where the InjectedBundle needs to have access
to a service worker's JS global object and script it. It wouldn't be practical
in such cases to have the service worker running off the main thread. Note that
this is not meant to be used for service workers in general, only for some very
specific service workers that require interaction with WebKit's injected bundle.
- Headers.cmake:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
- WebCore.xcodeproj/project.pbxproj:
- inspector/WorkerDebugger.cpp:
(WebCore::WorkerDebugger::runEventLoopWhilePaused):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
- page/PerformanceUserTiming.cpp:
(WebCore::PerformanceUserTiming::convertMarkToTimestamp const):
- workers/WorkerOrWorkletGlobalScope.h:
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
- workers/WorkerOrWorkletScriptController.h:
- workers/WorkerOrWorkletThread.cpp:
(WebCore::constructRunLoop):
(WebCore::WorkerOrWorkletThread::WorkerOrWorkletThread):
(WebCore::WorkerOrWorkletThread::startRunningDebuggerTasks):
(WebCore::WorkerOrWorkletThread::runEventLoop):
(WebCore::WorkerOrWorkletThread::workerOrWorkletThread):
(WebCore::WorkerOrWorkletThread::stop):
(WebCore::WorkerOrWorkletThread::suspend):
(WebCore::WorkerOrWorkletThread::resume):
- workers/WorkerOrWorkletThread.h:
- workers/WorkerRunLoop.cpp:
(WebCore::ModePredicate::operator() const):
(WebCore::WorkerDedicatedRunLoop::WorkerDedicatedRunLoop):
(WebCore::WorkerDedicatedRunLoop::~WorkerDedicatedRunLoop):
(WebCore::RunLoopSetup::RunLoopSetup):
(WebCore::WorkerDedicatedRunLoop::run):
(WebCore::WorkerDedicatedRunLoop::runInDebuggerMode):
(WebCore::WorkerDedicatedRunLoop::runInMode):
(WebCore::WorkerDedicatedRunLoop::runCleanupTasks):
(WebCore::WorkerDedicatedRunLoop::terminate):
(WebCore::WorkerDedicatedRunLoop::postTaskAndTerminate):
(WebCore::WorkerDedicatedRunLoop::postTaskForMode):
(WebCore::WorkerDedicatedRunLoop::Task::performTask):
(WebCore::WorkerDedicatedRunLoop::Task::Task):
(WebCore::WorkerMainRunLoop::WorkerMainRunLoop):
(WebCore::WorkerMainRunLoop::setGlobalScope):
(WebCore::WorkerMainRunLoop::postTaskAndTerminate):
(WebCore::WorkerMainRunLoop::postTaskForMode):
(WebCore::WorkerMainRunLoop::runInMode):
- workers/WorkerRunLoop.h:
(WebCore::WorkerRunLoop::createUniqueId):
(isType):
- workers/WorkerThread.cpp:
(WebCore::WorkerParameters::isolatedCopy const):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::createThread):
(WebCore::WorkerThread::evaluateScriptIfNecessary):
- workers/WorkerThread.h:
- workers/WorkerThreadMode.h: Added.
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::updateExtendedEventsSet):
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::generateWorkerParameters):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::finishedEvaluatingScript):
(WebCore::ServiceWorkerThread::startHeartBeatTimer):
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::SWServer):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorker):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerToContextConnection.h:
Source/WebKit:
Add support for running service workers on the main thread (off by default).
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::shouldRunServiceWorkersOnMainThread const):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::installServiceWorkerContext):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration shouldRunServiceWorkersOnMainThread]):
(-[_WKWebsiteDataStoreConfiguration setShouldRunServiceWorkersOnMainThread:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::shouldRunServiceWorkersOnMainThread const):
(WebKit::WebsiteDataStoreConfiguration::setShouldRunServiceWorkersOnMainThread):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 7:01 PM Changeset in webkit [283294] by
-
- 2 edits in trunk/Source/WebKit
Add weakThis check in addition to null check added in r282881
https://bugs.webkit.org/show_bug.cgi?id=231000
<rdar://83605614>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Brady Eidson.
r282881 made NetworkLoad::start call didCompleteWithError, which can cause the
NetworkResourceLoader to be deleted. It added a null check on m_networkLoad which
sometimes reads freed memory. This certainly isn't great, but luckily we have a way
to check if this object has been deleted. Let's do that.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- 6:39 PM Changeset in webkit [283293] by
-
- 11 edits in trunk
Print values in a nicer way in the jsc shell
https://bugs.webkit.org/show_bug.cgi?id=230931
Reviewed by Tadeu Zagallo.
JSTests:
- ChakraCore/test/jsc-lib.js:
Source/JavaScriptCore:
Currently, print(1), print("1"), and print([1]) all print to stdout
simply as "1" (without the quotes). Same for values when running the
REPL. This isn't super helpful. Let's print quotes for strings, and
brackets for arrays.
Some tests rely on the old print behavior. Those tests now use the legacyPrint
instead.
- jsc.cpp:
(toCString):
(printInternal):
(JSC_DEFINE_HOST_FUNCTION):
(runInteractive):
(cStringFromViewWithString): Deleted.
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toWTFStringForConsole const):
- runtime/JSCJSValue.h:
LayoutTests:
- resources/standalone-pre.js:
- 6:25 PM Changeset in webkit [283292] by
-
- 4 edits in trunk/Tools
[webkitscmpy] Contributors may be undefined
https://bugs.webkit.org/show_bug.cgi?id=230997
<rdar://problem/83693400>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
(main): Ensure that repositories always have defined contributors.
- 5:57 PM Changeset in webkit [283291] by
-
- 2 edits in branches/safari-613.1.3-branch/Tools
Cherry-pick r283172. rdar://problem/83697127
REGRESSION (r283102): [ MacOS Debug ] TestWebKitAPI.WebKit2.CaptureIndicatorDelay is failing
https://bugs.webkit.org/show_bug.cgi?id=230847
<rdar://problem/83577251>
Reviewed by Saam Barati.
As identified by Saam, the promise resolution callback is racing with the stop function.
To prevent this, we check in a loop whether the page has a stream and call stop when that is the case.
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/getUserMedia.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283172 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:57 PM Changeset in webkit [283290] by
-
- 3 edits2 adds in branches/safari-613.1.3-branch
Cherry-pick r283087. rdar://problem/83697121
Line iterator firstRun/lastRun may return runs from wrong lines
https://bugs.webkit.org/show_bug.cgi?id=230770
<rdar://problem/83509753>
Reviewed by Alan Bujtas.
Source/WebCore:
In some situation line iterator firstRun/lastRun could return runs from different lines.
This could lead to inconsistencies like firstRun being non-null while lastRun is null.
Test: editing/iterator-line-start-end.html
- layout/integration/LayoutIntegrationLineIteratorModernPath.h: (WebCore::LayoutIntegration::LineIteratorModernPath::firstRun const): (WebCore::LayoutIntegration::LineIteratorModernPath::lastRun const):
Take care to only return runs from this line.
LayoutTests:
- editing/iterator-line-start-end-expected.txt: Added.
- editing/iterator-line-start-end.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [283289] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Allow audio service in the WebContent process on older versions
https://bugs.webkit.org/show_bug.cgi?id=230974
<rdar://82445437>
Reviewed by Brent Fulgham.
Older versions of macOS still need access to "com.apple.audio.AudioComponentRegistrar" in the WebContent process.
- WebProcess/com.apple.WebProcess.sb.in:
- 5:47 PM Changeset in webkit [283288] by
-
- 6 edits1 add in trunk
We need to load the baseline JIT's constant pool register after OSR exit to checkpoints if we return to baseline code
https://bugs.webkit.org/show_bug.cgi?id=230972
<rdar://83659469>
Reviewed by Mark Lam and Yusuke Suzuki.
JSTests:
- stress/checkpoint-osr-exit-needs-to-reload-baseline-jit-constant-pool-gpr.js: Added.
(empty):
(empty2):
(test):
Source/JavaScriptCore:
Consider the following:
- We have a CodeBlock A.
- DFG or FTL compiles an exit to A when A is still LLInt code. This means the OSR exit code will materialize registers as if A is LLInt.
- We tier up A to Baseline JIT code.
- Now, we take the exit to A as if it's LLInt. But the checkpoint OSR exit code will actually jump to the tiered up baseline code when it's done, because it determines where to jump at runtime. Because of this, when we return from the checkpoint code, and if we are jumping into baseline code, we must always load the constant pool register.
- There's no need to load the metadata register because that register is shared with LLInt code, and will already contain the right value.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::dispatchToNextInstructionDuringExit):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit_from_inlined_call):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit):
(JSC::LLInt::dispatchToNextInstruction): Deleted.
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- 5:21 PM Changeset in webkit [283287] by
-
- 8 edits in trunk/Source
Suppress warnings for implicit copy assignment operator/copy constructor with clang 13
https://bugs.webkit.org/show_bug.cgi?id=230963
Reviewed by Mark Lam.
Source/JavaScriptCore:
Added default copy constructor to suppress warning.
- bytecode/Operands.h:
Source/WebCore:
No new tests because there is no behavior change.
Added default copy constructor / copy assignment operator to suppress warning.
- platform/LayoutUnit.h:
- platform/LengthBox.h:
- platform/RectEdges.h:
- platform/graphics/FontSelectionAlgorithm.h:
- platform/graphics/ImagePaintingOptions.h:
- 5:19 PM Changeset in webkit [283286] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Add objectTypeCounts to JSGetMemoryUsageStatistics
https://bugs.webkit.org/show_bug.cgi?id=230957
Reviewed by Yusuke Suzuki.
- API/JSBase.cpp: Added objectTypeCounts property
(JSGetMemoryUsageStatistics):
- API/JSBasePrivate.h: Added description of objectTypeCounts property
- jsc.cpp: Added memoryUsageStatistics() function
- 5:07 PM Changeset in webkit [283285] by
-
- 2 edits in trunk/Source/bmalloc
[bmalloc] ChunkHash is not used since r261667
https://bugs.webkit.org/show_bug.cgi?id=230762
Reviewed by Alex Christensen.
The structure is the leftover when ObjectTypeTable was introduced at r261667.
- bmalloc/Chunk.h:
- 5:00 PM Changeset in webkit [283284] by
-
- 5 edits in trunk/Source
[WinCairo] REGRESSION(r280726): registry keys enabling GPU process mode don't work
https://bugs.webkit.org/show_bug.cgi?id=230871
Reviewed by Don Olmstead.
Source/WebKit:
r270175 (Bug 219294) added registry keys to enable GPU process
mode for WinCairo port. But after r280726 (Bug 228803) changed the
function signature, they didn't work.
- Shared/WebPreferencesDefaultValues.cpp:
- Shared/win/WebPreferencesDefaultValuesWin.cpp:
(WebKit::isFeatureFlagEnabled):
Source/WTF:
- wtf/PlatformHave.h: r270175 defined HAVE_SYSTEM_FEATURE_FLAGS
for Windows to use WebKit::isFeatureFlagEnabled. But, it is no
longer needed.
- 4:56 PM Changeset in webkit [283283] by
-
- 4 edits in trunk
[ iOS Debug ] http/tests/xmlhttprequest/access-control-preflight-credential-sync.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=228305
<rdar://problem/81136891>
Reviewed by Alex Christensen.
Source/WebKit:
When a NetworkResourceLoader for a synchronous XHR gets aborted (e.g. because the connection to
the WebProcess was severed), NetworkResourceLoader::abort() would fail to call
sendReplyToSynchronousRequest() (sendReplyToSynchronousRequest was only called in didFailLoading() and
didFinishLoading()). As a result, we would hit the following assertion in the NetworkResourceLoader
destructor later on: ASSERT(!isSynchronous() !m_synchronousLoadData->delayedReply) No new tests, covered by existing test that I am unskipping.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::abort):
LayoutTests:
Unskip test that should no longer be flaky.
- platform/ios-wk2/TestExpectations:
- 4:53 PM Changeset in webkit [283282] by
-
- 2 edits in trunk/Tools
[webkitpy] LOG_CHANNEL is widely used in the codebase and shouldn't be treated as error
https://bugs.webkit.org/show_bug.cgi?id=230995
Reviewed by Jonathan Bedard.
LOG_CHANNEL is the macro which is defined in each framework to define list of all channels
in the framework.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- 4:36 PM Changeset in webkit [283281] by
-
- 2 edits in trunk/Tools
Update PCM Daemon name
https://bugs.webkit.org/show_bug.cgi?id=230516
In r282883 I updated the daemon name but not in this one place.
I think this might cause TestWebKitAPI.EventAttribution.Daemon to stop timing out on one of the bots.
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- 4:31 PM Changeset in webkit [283280] by
-
- 2 edits in trunk/Source/WebKit
Add a default return value in convertToExceptionCode
https://bugs.webkit.org/show_bug.cgi?id=230989
Reviewed by Chris Dumez.
To fix non-Cocoa build.
- NetworkProcess/storage/FileSystemStorageError.h:
(WebKit::convertToExceptionCode):
- 4:31 PM Changeset in webkit [283279] by
-
- 37 edits9 adds in trunk
Implement the 'ic' unit from CSS Values 4
https://bugs.webkit.org/show_bug.cgi?id=204276
<rdar://problem/57256127>
Patch by Kiet Ho <Kiet Ho> on 2021-09-29
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
Fix ic-unit-{001..012} tests and references to use the IcTestFullWidth font,
which includes the CJK water glyph as a full width character. This avoids an
issue on macOS Catalina where the chosen fallback font renders the glyph
outside of the em box.
Fix ic-unit-{001..004} references to not use the ic unit.
Add two new tests where the CJK water glyph is half-width (ic-unit-013) and zero-width
(ic-unit-014).
- web-platform-tests/css/css-values/ic-unit-001-expected.html:
- web-platform-tests/css/css-values/ic-unit-001.html:
- web-platform-tests/css/css-values/ic-unit-002-expected.html:
- web-platform-tests/css/css-values/ic-unit-002.html:
- web-platform-tests/css/css-values/ic-unit-003-expected.html:
- web-platform-tests/css/css-values/ic-unit-003.html:
- web-platform-tests/css/css-values/ic-unit-004-expected.html:
- web-platform-tests/css/css-values/ic-unit-004.html:
- web-platform-tests/css/css-values/ic-unit-008-expected.html:
- web-platform-tests/css/css-values/ic-unit-008.html:
- web-platform-tests/css/css-values/ic-unit-009-expected.html:
- web-platform-tests/css/css-values/ic-unit-009.html:
- web-platform-tests/css/css-values/ic-unit-010-expected.html:
- web-platform-tests/css/css-values/ic-unit-010.html:
- web-platform-tests/css/css-values/ic-unit-011-expected.html:
- web-platform-tests/css/css-values/ic-unit-011.html:
- web-platform-tests/css/css-values/ic-unit-012-expected.html:
- web-platform-tests/css/css-values/ic-unit-012.html:
- web-platform-tests/css/css-values/ic-unit-013-expected.html: Added.
- web-platform-tests/css/css-values/ic-unit-013.html: Added.
- web-platform-tests/css/css-values/ic-unit-014-expected.html: Added.
- web-platform-tests/css/css-values/ic-unit-014.html: Added.
- web-platform-tests/css/css-values/resources/IcTestFullWidth.woff2: Added.
- web-platform-tests/css/css-values/resources/IcTestHalfWidth.woff2: Added.
- web-platform-tests/css/css-values/resources/IcTestZeroWidth.woff2: Added.
Source/WebCore:
Tests: fast/css/CSSPrimitiveValue-ic.html
imported/w3c/web-platform-tests/css/css-values/ic-unit-013.html
imported/w3c/web-platform-tests/css/css-values/ic-unit-014.html
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeUnzoomedNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
(WebCore::CSSPrimitiveValue::collectDirectComputationalDependencies const):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isFontRelativeLength):
(WebCore::CSSPrimitiveValue::isLength):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::convertingToLengthRequiresNonNullStyle const):
- css/CSSUnits.cpp:
(WebCore::unitCategory):
(WebCore::operator<<):
- css/CSSUnits.h:
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
- css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):
- css/parser/CSSParserToken.cpp:
(WebCore::cssPrimitiveValueUnitFromTrie):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeDimension):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::computeLength):
- platform/graphics/Font.cpp:
(WebCore::Font::platformGlyphInit): simplyfy logic, reorder misplaced comment.
- platform/graphics/Font.h: remove property
m_zeroGlyphonly used once in
WebCore::Font::platformGlyphInit. Remove unused getters adjustedSpaceWidth(),
setSpaceWidths(), setSpaceGlyph(), setZeroWidthSpaceGlyph(), zeroGlyph(), setZeroGlyph().
(WebCore::Font::spaceWidth const):
(WebCore::Font::spaceGlyph const):
(WebCore::Font::zeroWidthSpaceGlyph const):
(WebCore::Font::isZeroWidthSpaceGlyph const):
- platform/graphics/FontMetrics.h:
(WebCore::FontMetrics::ideogramWidth const): add metric containing the width of an ideogram
glyph in the font. This width is approximated from the width of the CJK water glyph (U+6C34).
(WebCore::FontMetrics::setIdeogramWidth):
(WebCore::FontMetrics::reset):
Source/WTF:
- wtf/unicode/CharacterNames.h: add CJK water glyph (U+6C34) constant.
LayoutTests:
Added tests for behavior of CSSPrimitiveValue on ic unit.
- TestExpectations: remove ImageOnlyFailure expectations for ic-unit-* tests, now that they should pass.
- fast/css/CSSPrimitiveValue-ic-expected.txt: Added.
- fast/css/CSSPrimitiveValue-ic.html: Added.
- 4:30 PM Changeset in webkit [283278] by
-
- 1 copy in tags/Safari-612.2.9.0.1
Tag Safari-612.2.9.0.1.
- 4:30 PM Changeset in webkit [283277] by
-
- 1 copy in tags/Safari-612.2.9.1.1
Tag Safari-612.2.9.1.1.
- 4:28 PM Changeset in webkit [283276] by
-
- 29 edits2 copies3 adds in trunk
[Cocoa] add _WKInspectorExtension SPI to evaluate script on an extension tab
https://bugs.webkit.org/show_bug.cgi?id=230646
<rdar://problem/83420328>
Reviewed by Devin Rousso.
Source/WebCore:
Exercised by new API test: WKInspectorExtension.CanEvaluateScriptInExtensionTab
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.idl:
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::evaluateScriptInExtensionTab):
Find the global object that corresponds to the passed-in <iframe> and
try to evaluate scriptSource in the mainThreadNormalWorld() of that <iframe>.
- html/HTMLIFrameElement.idl: Add [JSGenerateToNativeObject] so that
it's possible to pass HTMLIFrameElement to the IDL function and convert it
to the native object (HTMLIFrameElement&) from a JSValue.
Source/WebInspectorUI:
Add a new InspectorFrontendAPI method to evaluate script on an iframe within
Web Inspector. This in turn calls out to InspectorFrontendHost to do the actual evaluation.
Otherwise, the CSP policy set by the tab content may block any such evaluation
if the 'script-src' directive does not include 'unsafe-eval'.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showExtensionTab):
(InspectorFrontendAPI.evaluateScriptInExtensionTab):
Call through to the WebInspectorExtensionController method.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.evaluateScriptInExtensionTab): Added.
Try to get the <iframe> for a extensionTabID, and use InspectorFrontendHost to
evaluate script in the context of the <iframe>. Be sure to correctly wrap the result.
- UserInterface/Views/WebInspectorExtensionTabContentView.js:
(WI.WebInspectorExtensionTabContentView):
(WI.WebInspectorExtensionTabContentView.prototype.get iframeElement):
(WI.WebInspectorExtensionTabContentView.shouldSaveTab):
(WI.WebInspectorExtensionTabContentView.prototype.initialLayout): Deleted.
While writing the API test, I saw that the first evaluation frequently failed
because the <iframe> did not exist. Change this class so that the <iframe>
is created in the constructor. Add a getter for the <iframe> element.
(WI.WebInspectorExtensionTabContentView.prototype._extensionFrameDidLoad):
(WI.WebInspectorExtensionTabContentView.prototype._maybeDispatchDidShowExtensionTab):
While writing this patch, it became apparent that didShowExtensionTab() was being
called prior to the iframe actually completing its initial load. Then, the test
would try to evaluate script on about:blank instead of the actual tab content.
To fix this, require that the <iframe> be attached and have fired theonloadevent
before we notify clients that it has been 'shown'.
- UserInterface/Main.html:
Adjust the default CSP policy to not mention img-src. This allows ports such as
Cocoa to set their own img-src CSP directive. These changes are necessary to allow
images to load from custom URL schemes.
- UserInterface/Views/TabBrowser.js:
(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
The new API test exposes a bug in this assertion, namely, that it does not account
for the situation where a tab does not wish to be saved. In that case, the displayed
WebInspectorExtensionTabContentView is *not* at index 0 of WI.TabBrowser.recentTabContentViews.
This is correctly handled with a special case in WI.TabBrowser._tabBarItemSelected,
so incorporate that logic into the assertion.
Source/WebKit:
Add new testing API for evaluating script expressions in the context of a
tab created by _WKInspectorExtension. For the most part, this is implemented
in the same way as the -evaluateScript: method, but the script is evaluated
within the Web Inspector frontend itself rather than in the inspected page.
To avoid CSP issues, the actual evaluation is performed on subframes using a
new InspectorFrontendHost method which takes an <iframe> and script source.
Along the way, tweak Web Inspector's CSP policy to allow loading images from
custom URL schemes as specified using _WKInspectorConfiguration. This is so
that tab icons from the test-resource: scheme can be loaded in the main frame
of Web Inspector's WKWebView under testing situations.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Add new files.
- UIProcess/API/APIInspectorExtension.h:
- UIProcess/API/APIInspectorExtension.cpp:
(API::InspectorExtension::evaluateScriptInExtensionTab):
Based on evaluateScript(). Call through to the shared extension controller.
- UIProcess/API/Cocoa/_WKInspectorExtensionPrivateForTesting.h: Added.
- UIProcess/API/Cocoa/_WKInspectorExtensionTesting.mm: Added.
(-[_WKInspectorExtension _evaluateScript:inExtensionTabWithIdentifier:completionHandler:]):
Added. Call through to the shared extension controller.
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptInExtensionTab):
Based on evaluateScript(). Send IPC to the Inspector WebProcess.
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::evaluateScriptInExtensionTab):
Based on evaluateScriptForExtension. Call into the frontend API
which will perform the actual evaluation on the <iframe> contentWindow.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
Specify the list of custom protocols as allowable sources for 'img-src'.
The 'img-src' directive also includes 'file: blob: resource:' as allowable
sources, since this was the previous CSP policy defined in Main.html.
- UIProcess/Cocoa/GroupActivities/GroupActivitiesSessionNotifier.mm:
Fix UnifiedSources fallout by including a missing header.
Tools:
Add a new test to exercise the SPI. The test sets up an _WKInspectorExtension,
creates a tab, evaluates script on the tab, and later reads back the stored value.
Notably, this test would fail if the extension tab is not currently showing.
This is a bug and will be addressed as part of https://bugs.webkit.org/show_bug.cgi?id=230758.
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Add new files.
- TestWebKitAPI/Tests/WebKitCocoa/InspectorExtension-basic-tab.html:
Add inline <script> to set window._secretValue. This is checked by the API test.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm: Added.
(resetGlobalState):
(-[UIDelegateForTestingInspectorExtension _webView:didAttachLocalInspector:]):
(-[UIDelegateForTestingInspectorExtension _webView:configurationForLocalInspector:]):
(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didShowTabWithIdentifier:]):
(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didHideTabWithIdentifier:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:
(-[UIDelegateForTestingInspectorExtensionDelegate _webView:configurationForLocalInspector:]):
(TEST):
Adopt fixes from WKInspectorExtension that allow extension tab content and icons to load.
- TestWebKitAPI/cocoa/TestInspectorURLSchemeHandler.h: Added.
- TestWebKitAPI/cocoa/TestInspectorURLSchemeHandler.mm: Copied from Source/WebKit/UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm.
(-[TestInspectorURLSchemeHandler webView:startURLSchemeTask:]):
(-[TestInspectorURLSchemeHandler webView:stopURLSchemeTask:]):
Add a simple URLSchemeHandler which allows serving test resources from the TestWebKitAPI.resources directory.
This is necessary to test _WKInspectorExtension tabs, which must load their content from a custom URL scheme.
- TestWebKitAPI/cocoa/TestWKWebView.mm:
Fix UnifiedSources fallout by adding a missing include.
- 4:27 PM Changeset in webkit [283275] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Use the first-line style when measuring text content when applicable
https://bugs.webkit.org/show_bug.cgi?id=230925
Reviewed by Antti Koivisto.
Disable "simplified content measuring" when first-style is present.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::inlineItemWidth const):
- layout/formattingContexts/inline/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- 4:08 PM Changeset in webkit [283274] by
-
- 10 edits1 copy2 moves1 add2 deletes in trunk
Use isolated NSURLSessions for each first party registrable domain
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://83159358>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing more checks.
- web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt:
Source/WebCore:
Fix bug where service worker soft-update requests would have their "first-party-for-cookies"
field set to "https:" instead of a full origin (e.g. "https://localhost:8080"). This was
causing some service worker test failures now that we use different NSURLSession based on
the "first-party-for-cookies" field.
- workers/service/server/SWServer.cpp:
(WebCore::originURL):
Source/WebKit:
Previously would use up to 10 isolated NSURLSessions only for domains marked as prevalent
by ITP *and* that the user interacts with as first party website. We now use different
isolated NSURLSession for each top-level registrable domain, not matter their ITP status.
This significantly improves privacy.
To avoid having too many NSURLSession, we clear the ones that haven't been used in the
last 10 minutes, every time we add a new one.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::SessionSet::isolatedSession):
LayoutTests:
This test is now passing more checks on WebKit2 but still completely fails on WebKit1 so I am
adding a WK1-specific baseline.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt.
- 4:04 PM Changeset in webkit [283273] by
-
- 8 edits in trunk/Source/WebCore
Allow
DrawGlyphsRecorderto be used with anyGraphicsContextinstead of justDisplayList::Recorder
https://bugs.webkit.org/show_bug.cgi?id=230913
Reviewed by Myles Maxfield.
There's really nothing about
DrawGlyphsRecorderthat's specific to display lists other
than it's currently only being used byDisplayList::Recorder.
This patch replaces
DisplayList::RecorderwithGraphicsContextinDrawGlyphsRecorder.
It also requires that new methods be added toGraphicsContextthat are overridden by
DisplayList::Recorder. This is being done to make<attachment>drawing work in the
GPUProcess (<https://webkit.org/b/230781>).
- platform/graphics/DrawGlyphsRecorder.h:
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:
(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::populateInternalState):
(WebCore::DrawGlyphsRecorder::prepareInternalContext):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:
(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/win/DrawGlyphsRecorderWin.cpp:
(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::drawGlyphsAndCacheFont): Added.
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::state const): Added.
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont): Renamed fromappendDrawGlyphsItemWithCachedFont.
AFAICT it seems like them_stateinGraphicsContexthas the same values (but is a
different object) as thecurrentState().stateChange.m_stateinDisplayList::Recorder.
Many of the non-overriden methods onGraphicsContext(e.g.setStrokeColor) both modify
them_stateand callupdateState, whichDisplayList::Recorderuses to modify its
currentState().stateChange.m_state. As such, we should be able to expose it as an override
for thestate"getter" so thatDrawGlyphsRecorderis able to access the current state in
aGraphicsContext-subclass agnostic way.
- 4:02 PM Changeset in webkit [283272] by
-
- 3 edits in trunk/Tools
Migrate _WKDownload tests from TCPServer to HTTPServer
https://bugs.webkit.org/show_bug.cgi?id=230980
<rdar://82100878>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Chris Dumez.
The former is very picky when it comes to numbers of TCP connections, and causes tests to time out when
the number of connections changes. The latter is more forgiving and runs code on the main thread.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(TestWebKitAPI::respondSlowly):
(TestWebKitAPI::downloadAtRate):
(TEST):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::Connection::send const):
- 3:45 PM Changeset in webkit [283271] by
-
- 30 edits4 moves in trunk/Source
Replace FileSystemHandleImpl with FileSystemStorageConnection
https://bugs.webkit.org/show_bug.cgi?id=230861
<rdar://problem/83606465>
Reviewed by Youenn Fablet.
Source/WebCore:
Introduce WorkerStorageConnection class, which dispatches StorageManager task to main-thread StorageConnection
and dispatches result back to worker thread.
Rebaselined existing test.
- Headers.cmake:
- Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:
(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::removeEntry):
(WebCore::FileSystemDirectoryHandle::resolve):
- Modules/filesystemaccess/FileSystemDirectoryHandle.h:
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
- Modules/filesystemaccess/FileSystemFileHandle.h:
- Modules/filesystemaccess/FileSystemHandle.cpp:
(WebCore::FileSystemHandle::FileSystemHandle):
(WebCore::FileSystemHandle::isSameEntry const):
- Modules/filesystemaccess/FileSystemHandle.h:
(WebCore::FileSystemHandle::identifier const):
(WebCore::FileSystemHandle::connection):
(WebCore::FileSystemHandle::impl const): Deleted.
- Modules/filesystemaccess/FileSystemHandleIdentifier.h: Renamed from Source/WebKit/NetworkProcess/storage/FileSystemStorageHandleIdentifier.h.
- Modules/filesystemaccess/FileSystemStorageConnection.h: Renamed from Source/WebCore/Modules/filesystemaccess/FileSystemHandleImpl.h.
(WebCore::FileSystemStorageConnection::~FileSystemStorageConnection):
- Modules/storage/DummyStorageProvider.h:
- Modules/storage/StorageConnection.h:
- Modules/storage/StorageManager.cpp:
(WebCore::StorageManager::fileSystemAccessGetDirectory):
- Modules/storage/WorkerStorageConnection.cpp:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
Replace FileSystemStorageHandleProxy with WebFileSystemStorageConnection.
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::FileSystemStorageHandle):
(WebKit::FileSystemStorageHandle::isSameEntry):
(WebKit::FileSystemStorageHandle::requestCreateHandle):
(WebKit::FileSystemStorageHandle::getFileHandle):
(WebKit::FileSystemStorageHandle::getDirectoryHandle):
(WebKit::FileSystemStorageHandle::resolve):
- NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::identifier const):
- NetworkProcess/storage/FileSystemStorageHandleRegistry.cpp:
(WebKit::FileSystemStorageHandleRegistry::registerHandle):
(WebKit::FileSystemStorageHandleRegistry::unregisterHandle):
(WebKit::FileSystemStorageHandleRegistry::getHandle):
- NetworkProcess/storage/FileSystemStorageHandleRegistry.h:
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::createHandle):
(WebKit::FileSystemStorageManager::getPath):
(WebKit::FileSystemStorageManager::getDirectory):
- NetworkProcess/storage/FileSystemStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::fileSystemGetDirectory):
(WebKit::NetworkStorageManager::isSameEntry):
(WebKit::NetworkStorageManager::getFileHandle):
(WebKit::NetworkStorageManager::getDirectoryHandle):
(WebKit::NetworkStorageManager::removeEntry):
(WebKit::NetworkStorageManager::resolve):
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- NetworkProcess/storage/OriginStorageManager.h:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp: Renamed from Source/WebKit/WebProcess/WebCoreSupport/FileSystemStorageHandleProxy.cpp.
(WebKit::WebFileSystemStorageConnection::create):
(WebKit::WebFileSystemStorageConnection::WebFileSystemStorageConnection):
(WebKit::WebFileSystemStorageConnection::connectionClosed):
(WebKit::WebFileSystemStorageConnection::isSameEntry):
(WebKit::WebFileSystemStorageConnection::getFileHandle):
(WebKit::WebFileSystemStorageConnection::getDirectoryHandle):
(WebKit::WebFileSystemStorageConnection::removeEntry):
(WebKit::WebFileSystemStorageConnection::resolve):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h: Renamed from Source/WebKit/WebProcess/WebCoreSupport/FileSystemStorageHandleProxy.h.
- WebProcess/WebCoreSupport/WebStorageConnection.cpp:
(WebKit::WebStorageConnection::persist):
(WebKit::WebStorageConnection::fileSystemGetDirectory):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::fileSystemStorageConnection):
- WebProcess/WebProcess.h:
- 3:44 PM Changeset in webkit [283270] by
-
- 3 edits in trunk/Tools
Unreviewed built trigger fix.
Patch by Matt Lewis <Matt Lewis> on 2021-09-29
- CISupport/build-webkit-org/wkbuild.py:
(_should_file_trigger_build):
- CISupport/build-webkit-org/wkbuild_unittest.py:
(ShouldBuildTest):
(ShouldBuildTest.test_should_build):
- 3:25 PM Changeset in webkit [283269] by
-
- 41 edits in trunk
[css-ui] getComputedStyle() must return the specified value for '-webkit-appearance'
https://bugs.webkit.org/show_bug.cgi?id=230916
rdar://83640938
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
Rebaseline for progression.
Source/WebCore:
Currently, an element's appearance can be adjusted to "none" depending
on the applied CSS properties. For example, buttons that specify a
background-color lose their native appearance. The existing behavior is
implemented by modifying the appearance field on RenderStyle.
While the spec allows certain properties to affect appearance, it
also asserts that the computed value must be equal to the specific
value [1]. However, since the specified and adjusted values are stored
in the same field in RenderStyle, the computed value does not always
equal the specified value.
To fix, introduce an effectiveAppearance field to RenderStyle, which
stores the used appearance. The specified appearance remains in the
appearance field, ensuring the computed value adheres to the spec.
The new behavior matches Chrome and Firefox. This work is also necessary
for WebKit to support 'auto' as a valid appearance value, since the
used value will need to be adjusted depending on the element type, but
the computed value should remain 'auto'.
[1] https://www.w3.org/TR/css-ui-4/#appearance-switching
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::boundingBoxForQuads):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isApplePayButton const):
- accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::orientation const):
- dom/Element.cpp:
(WebCore::Element::setActive):
(WebCore::Element::setHovered):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledStateChanged):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::setIndeterminate):
- html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::createElementRenderer):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
- html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::createElementRenderer):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
- html/shadow/ProgressShadowElement.cpp:
(WebCore::ProgressShadowElement::rendererIsNeeded):
(WebCore::ProgressInnerElement::rendererIsNeeded):
- html/shadow/SliderThumbElement.cpp:
(WebCore::hasVerticalAppearance):
(WebCore::RenderSliderThumb::updateAppearance):
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):
- rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::shouldDrawBorder const):
(WebCore::RenderAttachment::paintReplaced):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addVisualOverflowFromTheme):
(WebCore::RenderBlock::baselinePosition const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::determineBackgroundBleedAvoidance const):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasVisibleBoxDecorationStyle const):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCustomAppearance):
(WebCore::hasVisibleBoxDecorations):
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
- rendering/RenderMenuList.cpp:
(RenderMenuList::menuStyle const):
(RenderMenuList::clientPaddingLeft const):
(RenderMenuList::clientPaddingRight const):
- rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateAnimationState):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
Ensure the specified value is not modified by adjusting the
effectiveAppearance field instead of the appearance field.
(WebCore::RenderTheme::adjustSearchFieldDecorationStyle const):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::baselinePosition const):
(WebCore::RenderTheme::isControlStyled const):
(WebCore::RenderTheme::adjustRepaintRect):
(WebCore::RenderTheme::supportsFocusRing const):
(WebCore::RenderTheme::isDefault const):
(WebCore::RenderTheme::paintSliderTicks):
- rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::supportsFocusRing const):
(WebCore::RenderThemeAdwaita::popupInternalPaddingBox const):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::adjustSliderThumbSize const):
(WebCore::RenderThemeAdwaita::paintSliderThumb):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustedPaintRect const):
(WebCore::RenderThemeIOS::baselinePosition const):
(WebCore::RenderThemeIOS::isControlStyled const):
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::RenderThemeIOS::adjustRoundBorderRadius):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::adjustSliderThumbSize const):
(WebCore::RenderThemeIOS::adjustButtonStyle const):
(WebCore::RenderThemeIOS::supportsBoxShadow const):
(WebCore::RenderThemeIOS::paintSliderTicks):
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::isControlStyled const):
(WebCore::RenderThemeMac::adjustRepaintRect):
(WebCore::RenderThemeMac::controlSupportsTints const):
(WebCore::RenderThemeMac::meterSizeForBounds const):
(WebCore::RenderThemeMac::levelIndicatorFor const):
(WebCore::RenderThemeMac::progressBarRectForBounds const):
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
(WebCore::RenderThemeMac::paintSliderTrack):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::adjustSliderThumbSize const):
- rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::supportsFocusRing const):
(WebCore::RenderThemeWin::determineClassicState):
(WebCore::RenderThemeWin::determineState):
(WebCore::RenderThemeWin::determineSliderThumbState):
(WebCore::RenderThemeWin::determineButtonState):
(WebCore::RenderThemeWin::getClassicThemeData):
(WebCore::RenderThemeWin::getThemeData):
(WebCore::drawControl):
(WebCore::RenderThemeWin::paintSliderTrack):
(WebCore::RenderThemeWin::adjustSliderThumbSize const):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hashForTextAutosizing const):
(WebCore::RenderStyle::equalForTextAutosizing const):
(WebCore::rareNonInheritedDataChangeRequiresLayout):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasEffectiveAppearance const):
(WebCore::RenderStyle::effectiveAppearance const):
(WebCore::RenderStyle::setAppearance):
(WebCore::RenderStyle::setEffectiveAppearance):
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::isCacheable):
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- 3:22 PM Changeset in webkit [283268] by
-
- 2 edits in trunk/LayoutTests
[ Catalina+ Debug wk2 ] fast/speechrecognition/start-recognition-after-gum.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=228209
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:11 PM Changeset in webkit [283267] by
-
- 3 edits in trunk/LayoutTests
[ iOS Debug ] fast/selectors/ backtracking tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=230988
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 2:58 PM Changeset in webkit [283266] by
-
- 2 edits in trunk/Tools
[PlayStation] Make build-webkit configurable using environment variable
https://bugs.webkit.org/show_bug.cgi?id=230958
Reviewed by Fujii Hironori.
The cmake toolchain file is hard coded in the script. Make it configurable using
environment variable.
- Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject):
- 2:52 PM Changeset in webkit [283265] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=230987
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 2:45 PM Changeset in webkit [283264] by
-
- 3 edits in trunk/Source/bmalloc
Unreviewed, reverting r282850.
Patch causing many crashes in
bmalloc::Heap::decommitLargeRange
Reverted changeset:
"[bmalloc] freeableMemory and footprint of Heap are completely
broken"
https://bugs.webkit.org/show_bug.cgi?id=230245
https://commits.webkit.org/r282850
- 2:16 PM Changeset in webkit [283263] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Debug arm64 ] streams/readableStream-then.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230984.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:12 PM Changeset in webkit [283262] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r281602.
These tests are working now
Reverted changeset:
"25 webkit imported/w3c/web-platform-tests/css/ layout tests
failing with black bars"
https://commits.webkit.org/r281602
- 1:55 PM Changeset in webkit [283261] by
-
- 2 edits in trunk/LayoutTests
Update test expectations to include x86 for imported/w3c/web-platform-tests/resource-timing/sizes-redirect-img.html.
https://bugs.webkit.org/show_bug.cgi?id=230862.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:53 PM Changeset in webkit [283260] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] LineBoxBuilder should use the first-line style when applicable
https://bugs.webkit.org/show_bug.cgi?id=230930
Reviewed by Antti Koivisto.
This is in preparation for supporting first-line style.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/formattingContexts/inline/InlineFormattingContext.h:
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
- layout/formattingContexts/inline/InlineLineBoxBuilder.h:
- 1:46 PM Changeset in webkit [283259] by
-
- 2 edits in trunk/LayoutTests
[iOS EWS] imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230979.
Unreviewed test gardening.
- platform/ios-14-wk2/TestExpectations:
- 1:38 PM Changeset in webkit [283258] by
-
- 4 edits2 adds in trunk
Thin hairline gap displayed for subpixel sized inset box-shadows
https://bugs.webkit.org/show_bug.cgi?id=230814
Reviewed by Simon Fraser.
Source/WebCore:
Add missing device pixel snapping for inset offset.
Test: fast/box-shadow/hidpi-box-shadow-inset-on-subpixel-position.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):
LayoutTests:
- fast/box-shadow/hidpi-box-shadow-inset-on-subpixel-position-expected.html: Added.
- fast/box-shadow/hidpi-box-shadow-inset-on-subpixel-position.html: Added.
- platform/win/TestExpectations:
- 1:35 PM Changeset in webkit [283257] by
-
- 2 edits in trunk/LayoutTests
Fixed incorrect test expectations for imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html.
https://bugs.webkit.org/show_bug.cgi?id=230866.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:29 PM Changeset in webkit [283256] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] InlineDisplayContentBuilder should use the first-line style when applicable
https://bugs.webkit.org/show_bug.cgi?id=230932
Reviewed by Antti Koivisto.
This is in preparation for supporting first-line style.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineSpanningInlineBoxes):
- 1:16 PM Changeset in webkit [283255] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Pass in the first-line style to the InlineContentBreaker::ContinuousContent runs if applicable
https://bugs.webkit.org/show_bug.cgi?id=230924
Reviewed by Antti Koivisto.
Now the inline content breaker has the correct set of style values when first-line style is set.
- layout/formattingContexts/inline/InlineItem.h:
(WebCore::Layout::InlineItem::firstLineStyle const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::candidateContentForLine):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 1:14 PM Changeset in webkit [283254] by
-
- 3 edits in trunk/Source/WebCore
Remove references to '-webkit-clear-button'
https://bugs.webkit.org/show_bug.cgi?id=230971
Reviewed by Simon Fraser.
The pseudo-element was removed in r150876.
- css/html.css:
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):
Updated comment to use a pseudo-element which exists.
- 1:06 PM Changeset in webkit [283253] by
-
- 3 edits in trunk/Source/WebKit
Add telemetry to the Networking process sandbox
https://bugs.webkit.org/show_bug.cgi?id=230919
<rdar://problem/83641392>
Reviewed by Brent Fulgham.
Add telemetry to the Networking process sandbox on iOS and macOS.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 12:49 PM Changeset in webkit [283252] by
-
- 1 copy in tags/Safari-612.2.6.1.3
Tag Safari-612.2.6.1.3.
- 12:46 PM Changeset in webkit [283251] by
-
- 8 edits in branches/safari-612.2.6.1-branch/Source
Versioning.
WebKit-7612.2.6.1.3
- 12:45 PM Changeset in webkit [283250] by
-
- 2 edits in branches/safari-612.2.9.1-branch/Source/WebKitLegacy/mac
Cherry-pick r283225. rdar://problem/83683566
Make WebLocalizedString() thread-safe
https://bugs.webkit.org/show_bug.cgi?id=230954
Reviewed by Alexey Proskuryakov.
Make WebLocalizedString() thread-safe. It takes minimal effort to make it thread-safe given
that the NSBundle API is thread-safe [1] and clients keep calling it on the background thread.
[1] https://developer.apple.com/documentation/foundation/nslocalizedstringwithdefaultvalue
"As of OS X 10.11 and iOS 9, NSBundle is thread-safe. As such, you can safely call
NSLocalizedStringWithDefaultValue from any execution context."
- Misc/WebLocalizableStrings.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:43 PM Changeset in webkit [283249] by
-
- 2 edits in branches/safari-612.2.9.0-branch/Source/WebKitLegacy/mac
Cherry-pick r283225. rdar://problem/83683557
Make WebLocalizedString() thread-safe
https://bugs.webkit.org/show_bug.cgi?id=230954
Reviewed by Alexey Proskuryakov.
Make WebLocalizedString() thread-safe. It takes minimal effort to make it thread-safe given
that the NSBundle API is thread-safe [1] and clients keep calling it on the background thread.
[1] https://developer.apple.com/documentation/foundation/nslocalizedstringwithdefaultvalue
"As of OS X 10.11 and iOS 9, NSBundle is thread-safe. As such, you can safely call
NSLocalizedStringWithDefaultValue from any execution context."
- Misc/WebLocalizableStrings.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:21 PM Changeset in webkit [283248] by
-
- 5 edits in branches/safari-612.2.9.0-branch/Source
Cherry-pick r283156. rdar://problem/83648190
Vorbis decoder can't be instantiated - Remove workaround added in bug 228139
https://bugs.webkit.org/show_bug.cgi?id=230742
rdar://83484414
Reviewed by Eric Carlson.
Source/WebKit:
This is already covered by test; however this will fail on Monterey without the updated
CoreMedia framework.
- Scripts/process-entitlements.sh: Add new required entitlement.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox): Only have bug workaround on BigSur and earlier.
Source/WTF:
- wtf/PlatformUse.h: Add USE_VORBIS_AUDIOCOMPONENT_WORKAROUND
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:19 PM Changeset in webkit [283247] by
-
- 8 edits in branches/safari-612.2.9.0-branch/Source
Versioning.
WebKit-7612.2.9.0.1
- 12:17 PM Changeset in webkit [283246] by
-
- 3 edits in branches/safari-612.2.9.1-branch/Source/WebKit
Cherry-pick r283209. rdar://problem/83681911
Crash in WebKit::DisplayLink::displayLinkCallback()
https://bugs.webkit.org/show_bug.cgi?id=230917
<rdar://82528370>
Reviewed by Tim Horton.
We have evidence of a divide-by-zero crash in DisplayLink::notifyObserversDisplayWasRefreshed()
where m_currentUpdate.updatesPerSecond is zero. The only way I can see this happening
is if DisplayLink::DisplayLink() returns early, which should log. Protect against
this by initializing m_displayNominalFramesPerSecond to 60, and do another check,
with a log, in DisplayLink::addObserver() before we use m_displayNominalFramesPerSecond
for the first time.
Convert the logging to RELEASE_LOG_FAULT reports.
- UIProcess/mac/DisplayLink.cpp: (WebKit::DisplayLink::DisplayLink): (WebKit::DisplayLink::addObserver):
- UIProcess/mac/DisplayLink.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:17 PM Changeset in webkit [283245] by
-
- 5 edits in branches/safari-612.2.9.1-branch/Source
Cherry-pick r283156. rdar://problem/83681765
Vorbis decoder can't be instantiated - Remove workaround added in bug 228139
https://bugs.webkit.org/show_bug.cgi?id=230742
rdar://83484414
Reviewed by Eric Carlson.
Source/WebKit:
This is already covered by test; however this will fail on Monterey without the updated
CoreMedia framework.
- Scripts/process-entitlements.sh: Add new required entitlement.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox): Only have bug workaround on BigSur and earlier.
Source/WTF:
- wtf/PlatformUse.h: Add USE_VORBIS_AUDIOCOMPONENT_WORKAROUND
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:17 PM Changeset in webkit [283244] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
Update WPT's IDL for font palettes
https://bugs.webkit.org/show_bug.cgi?id=230794
<rdar://problem/83530497>
Reviewed by Tim Horton.
Updating to the latest spec.
- web-platform-tests/css/css-fonts/idlharness-expected.txt:
- web-platform-tests/interfaces/css-fonts.idl:
- 12:16 PM Changeset in webkit [283243] by
-
- 8 edits in branches/safari-612.2.9.1-branch/Source
Versioning.
WebKit-7612.2.9.1.1
- 11:42 AM Changeset in webkit [283242] by
-
- 1 copy in branches/safari-612.2.9.3-branch
New branch.
- 11:41 AM Changeset in webkit [283241] by
-
- 1 copy in branches/safari-612.2.9.2-branch
New branch.
- 11:41 AM Changeset in webkit [283240] by
-
- 1 copy in branches/safari-612.2.9.1-branch
New branch.
- 11:41 AM Changeset in webkit [283239] by
-
- 1 copy in branches/safari-612.2.9.0-branch
New branch.
- 11:21 AM Changeset in webkit [283238] by
-
- 21 edits2 adds in trunk
MediaStream canvas.captureStream() fails for WebGL
https://bugs.webkit.org/show_bug.cgi?id=230613
<rdar://82307293>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-29
Reviewed by Youenn Fablet.
.:
Add a manual test to interact with media stream
captureStream() behavior until the implementation is
testable.
- ManualTests/mediastream/mediastream-canvas-to-video.html: Added.
Source/WebCore:
Remove previous incorrect behavior of turning on "preservesDrawingBuffer"
and sampling the drawing buffer. The drawing buffer is not what should
ever be touched, rather it's the display buffer that should be available.
Implement sampling of WebGL display buffer for
media stream capture. The upon sampling, obtain a shared
reference to the
display buffer, passes it to media sample consuming process and mark
the WebGL context display buffer non-eligible for recycling as
new drawing buffer.
Currently the implementation is displayed correctly for
WebGL contents that is premultiplied. Unpremultiplied
content is fixed in the associated bugs.
Note: there are bugs preventing robust use of the API,
listed in the associated bugs. As such, testing is not expanded
in this bug.
Tested by
ManualTests/mediastream/mediastream-canvas-to-video.html (added)
https://webrtc.github.io/samples/src/content/capture/canvas-video/
(Refresh the page or hide the window until MediaPlayer initialization
flakyness lets rendering happen)
The test LayoutTests/fast/mediastream/captureStream/canvas3d.html
cannot yet be used to test the implementation as the rest of the
captureStream() and playback implementation is so flaky.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintCompositedResultsToMediaSample):
- html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::isPreservingDrawingBuffer const):
- platform/graphics/GraphicsContextGL.cpp:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample):
- platform/graphics/RemoteGraphicsContextGLProxyBase.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createImageSample):
- platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.cpp:
(WebCore::GraphicsContextGLIOSurfaceSwapChain::present):
- platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.h:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
- platform/graphics/cocoa/RemoteGraphicsContextGLProxyBaseCocoa.mm:
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
LayoutTests:
Add new expectations, a warning was removed.
CONSOLE MESSAGE: Turning drawing buffer preservation for the WebGL canvas being captured
- fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events-expected.txt:
- fast/mediastream/captureStream/canvas3d-expected.txt:
- 11:19 AM Changeset in webkit [283237] by
-
- 52 edits6 copies in trunk
Build-time optimization: forward declare more things in MediaPlayer.h and HTMLMediaElement.h
https://bugs.webkit.org/show_bug.cgi?id=230853
Reviewed by Eric Carlson.
Source/WebCore:
Forward-declare more things in MediaPlayer.h, and break apart *TrackPrivateClient into its
own file, so that clients don't need to include the entire class's file. This requires
other classes who got those includes "for free" previously to explicitly include headers in
their source files.
Drive-by fixes: Fixed a number of places where '0' was being used for 'null'.
- Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:
- Modules/mediasource/MediaSource.cpp:
- Modules/mediasource/SourceBuffer.cpp:
- Modules/mediasource/SourceBuffer.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::initialize):
- WebCore.xcodeproj/project.pbxproj:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilterOperations):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShapeInset):
(WebCore::consumeBorderImageSlice):
(WebCore::consumeBorderImageOutset):
- dom/Element.cpp:
(WebCore::Element::getAttributeNodeNS):
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::addConsoleMessage):
- dom/TextEvent.cpp:
(WebCore::TextEvent::createForPlainTextPaste):
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::listifyParagraph):
- html/HTMLMediaElement.cpp:
- html/HTMLMediaElement.h:
- html/track/AudioTrack.cpp:
(WebCore::AudioTrack::AudioTrack):
(WebCore::AudioTrack::~AudioTrack):
(WebCore::AudioTrack::setPrivate):
- html/track/AudioTrack.h:
(WebCore::AudioTrackClient::audioTrackEnabledChanged): Deleted.
(WebCore::AudioTrackClient::audioTrackIdChanged): Deleted.
(WebCore::AudioTrackClient::audioTrackKindChanged): Deleted.
(WebCore::AudioTrackClient::audioTrackLabelChanged): Deleted.
(WebCore::AudioTrackClient::audioTrackLanguageChanged): Deleted.
(WebCore::AudioTrackClient::willRemoveAudioTrack): Deleted.
- html/track/AudioTrackClient.h:
(WebCore::AudioTrackClient::audioTrackEnabledChanged):
(WebCore::AudioTrackClient::audioTrackIdChanged):
(WebCore::AudioTrackClient::audioTrackKindChanged):
(WebCore::AudioTrackClient::audioTrackLabelChanged):
(WebCore::AudioTrackClient::audioTrackLanguageChanged):
(WebCore::AudioTrackClient::willRemoveAudioTrack):
- html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack):
(WebCore::InbandTextTrack::~InbandTextTrack):
(WebCore::InbandTextTrack::setPrivate):
- html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack):
(WebCore::VideoTrack::~VideoTrack):
(WebCore::VideoTrack::setPrivate):
- html/track/VideoTrack.h:
(WebCore::VideoTrackClient::videoTrackIdChanged): Deleted.
(WebCore::VideoTrackClient::videoTrackKindChanged): Deleted.
(WebCore::VideoTrackClient::videoTrackLabelChanged): Deleted.
(WebCore::VideoTrackClient::videoTrackLanguageChanged): Deleted.
(WebCore::VideoTrackClient::videoTrackSelectedChanged): Deleted.
(WebCore::VideoTrackClient::willRemoveVideoTrack): Deleted.
- html/track/VideoTrack.idl:
- html/track/VideoTrackClient.h:
(WebCore::VideoTrackClient::videoTrackIdChanged):
(WebCore::VideoTrackClient::videoTrackKindChanged):
(WebCore::VideoTrackClient::videoTrackLabelChanged):
(WebCore::VideoTrackClient::videoTrackLanguageChanged):
(WebCore::VideoTrackClient::videoTrackSelectedChanged):
(WebCore::VideoTrackClient::willRemoveVideoTrack):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
- platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::setClient):
(WebCore::AudioTrackPrivate::clearClient):
- platform/graphics/AudioTrackPrivateClient.h:
- platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::setClient):
(WebCore::InbandTextTrackPrivate::clearClient):
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::MediaPlayer):
- platform/graphics/MediaPlayer.h:
- platform/graphics/SourceBufferPrivate.cpp:
- platform/graphics/TrackPrivateBase.h:
- platform/graphics/TrackPrivateBaseClient.h:
- platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::setClient):
(WebCore::VideoTrackPrivate::clearClient):
- platform/graphics/VideoTrackPrivateClient.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
- platform/mock/mediasource/MockMediaSourcePrivate.h:
- rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry const):
- rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::RenderSearchField):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::setFontFromControlSize const):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLParserContext::createMemoryParser):
Source/WebKit:
Use new WeakPtr based client setters on TrackPrivates.
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::~RemoteAudioTrackProxy):
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::~RemoteTextTrackProxy):
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::~RemoteVideoTrackProxy):
Source/WebKitLegacy:
Use nullptr rather than zero for null values.
- Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
- 11:12 AM Changeset in webkit [283236] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Remove CodeBlock::m_llintExecuteCounter
https://bugs.webkit.org/show_bug.cgi?id=230938
Reviewed by Keith Miller.
CodeBlock::m_llintExecuteCounter is a pointer pointing the middle of UnlinkedCodeBlock.
So this is not necessary to have this pointer separately to access to that from LLInt,
since loading UnlinkedCodeBlock and accessing to the middle of that do the same number
of loads.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::jitSoon):
(JSC::CodeBlock::jitNextInvocation):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::checkIfJITThresholdReached):
(JSC::CodeBlock::dontJITAnytimeSoon):
(JSC::CodeBlock::llintExecuteCounter const):
(JSC::CodeBlock::addressOfJITExecuteCounter): Deleted.
- llint/LowLevelInterpreter.asm:
- 11:05 AM Changeset in webkit [283235] by
-
- 3 edits in trunk/LayoutTests
[ iOS macOS wk2 ] webrtc/datachannel/mdns-ice-candidates.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230700
<rdar://problem/83456565>
Reviewed by Eric Carlson.
- platform/mac-wk2/TestExpectations:
- webrtc/datachannel/mdns-ice-candidates.html:
Close connections test after test.
- 10:58 AM Changeset in webkit [283234] by
-
- 14 edits in trunk/Source/WebCore
[LFC][IFC] Layout::Box should be able to return the first-line style when applicable
https://bugs.webkit.org/show_bug.cgi?id=230921
Reviewed by Antti Koivisto.
This is in preparation for supporting first-line style.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::rootBoxFirstLineStyle):
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTree):
(WebCore::LayoutIntegration::BoxTree::updateStyle):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box): Use the rare data to store first-line style.
(WebCore::Layout::Box::updateStyle):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::firstLineStyle const):
- layout/layouttree/LayoutContainerBox.cpp:
(WebCore::Layout::ContainerBox::ContainerBox):
- layout/layouttree/LayoutContainerBox.h:
(WebCore::Layout::ContainerBox::ContainerBox):
- layout/layouttree/LayoutInitialContainingBlock.cpp:
(WebCore::Layout::InitialContainingBlock::InitialContainingBlock):
- layout/layouttree/LayoutInitialContainingBlock.h:
- layout/layouttree/LayoutInlineTextBox.cpp:
(WebCore::Layout::InlineTextBox::InlineTextBox):
- layout/layouttree/LayoutInlineTextBox.h:
- layout/layouttree/LayoutLineBreakBox.cpp:
(WebCore::Layout::LineBreakBox::LineBreakBox):
- layout/layouttree/LayoutLineBreakBox.h:
- layout/layouttree/LayoutReplacedBox.cpp:
(WebCore::Layout::ReplacedBox::ReplacedBox):
- layout/layouttree/LayoutReplacedBox.h:
- 10:17 AM Changeset in webkit [283233] by
-
- 84 edits5 adds in trunk
[WebIDL] Align property order of DOM constructors with ECMA-262 counterparts
https://bugs.webkit.org/show_bug.cgi?id=230584
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
This is being upstreamed at https://github.com/web-platform-tests/wpt/pull/30333.
- web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.html: Added.
- web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.js: Added.
- web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.worker-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.worker.html: Added.
Source/WebCore:
This patch implements spec proposal [1] on matching property order of DOM constructors
with ECMA-262 functions: "length", "name", "prototype". Aligns WebKit with Blink and Gecko.
Also, groups property puts to remove 2 extra$interface->isNamespaceObjectchecks.
No behavior change except for enumeration order.
[1] https://github.com/heycam/webidl/pull/914
Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.html
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/builtin-function-properties.any.worker.html
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
- bindings/scripts/test/JS/*: Updated.
- 10:03 AM Changeset in webkit [283232] by
-
- 3 edits1 add in trunk
Code inside strength reduction can incorrectly prove that we know what lastIndex is
https://bugs.webkit.org/show_bug.cgi?id=230802
<rdar://problem/83543699>
Reviewed by Mark Lam.
JSTests:
- stress/dont-fold-regexp-exec-when-we-dont-know-last-index-and-regexp-is-constant.js: Added.
(assert):
(let.reg.RegExp.foo.g.doExec):
(noInline.doExec):
Source/JavaScriptCore:
The phase was searching backwards in the graph to see if it found the RegExp
node. However, the RegExp node might be a JSConstant. Hence, the program
didn't allocate it. So we can't assume that we know what the lastIndex is.
We were incorrectly assuming it was "0" in a program like this:
a: JSConstant(RegExp)
b: RegExpExec(@a)
And we assumed we're invoking RegExpExec with lastIndex is 0, because we found
our RegExp in a backwards search. This is likely because we're also matching
NewRegExp nodes, in which case, it is valid to say lastIndex is 0.
This caused us to return a constant value that would've been the exec
result had we invoked it with a NewRegExpNode.
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::run):
(JSC::DFG::StrengthReductionPhase::handleNode):
- 9:56 AM Changeset in webkit [283231] by
-
- 2 edits in trunk/JSTests
DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>
Unreviewed. Forgot to add a try/catch in the test.
- stress/verify-can-gc-node-index.js:
- 9:54 AM Changeset in webkit [283230] by
-
- 3 edits in trunk/Tools
WPT importer should create serviceworker template for templated test that have worker as global
https://bugs.webkit.org/show_bug.cgi?id=230943
Reviewed by Jonathan Bedard.
Tests with a worker global should run in all worker global scope (dedicated worker, shared worker and service worker).
Let's add service worker by default for now.
- Scripts/webkitpy/w3c/test_importer.py:
- Scripts/webkitpy/w3c/test_importer_unittest.py:
- 9:44 AM Changeset in webkit [283229] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Use FixedVector in JITConstantPool
https://bugs.webkit.org/show_bug.cgi?id=230937
Reviewed by Keith Miller.
This patch changes JITConstantPool to use FixedVector. This allocates exact size
of memory and Making sizeof(JITConstantPool) smaller. We also use CompactPointerTuple
for JITConstantPool::Value since it is faster for access.
To achieve that, in JIT, we append Value to normal Vector. And when finalizing BaselineJITCode
we construct JITConstantPool from that Vector.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
- jit/BaselineJITCode.h:
(JSC::JITConstantPool::JITConstantPool):
(JSC::JITConstantPool::add): Deleted.
- jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::addToConstantPool):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::compileOpCall):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emitNewFuncExprCommon):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emit_op_enumerator_get_by_val):
- 9:37 AM Changeset in webkit [283228] by
-
- 2 edits in trunk/Source/WebCore
Fix typo in RenderSVGBlock::updateFromStyle comment
https://bugs.webkit.org/show_bug.cgi?id=230955
Patch by Olivier Blin <Olivier Blin> on 2021-09-29
Reviewed by Simon Fraser.
No new tests, just a comment fix.
- rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::updateFromStyle): refactor instead of reactor.
- 9:28 AM Changeset in webkit [283227] by
-
- 7 edits in trunk/Source/WebKit
Reduce allocations in DatabaseUtilities::sortedTables
https://bugs.webkit.org/show_bug.cgi?id=230933
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Chris Dumez.
No change in behavior except no more memory allocations. What a wonderful thing.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::sortedTables):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/DatabaseUtilities.cpp:
(WebKit::DatabaseUtilities::migrateDataToNewTablesIfNecessary):
- NetworkProcess/DatabaseUtilities.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::sortedTables):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
- 9:26 AM Changeset in webkit [283226] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/scrolling/ios/click-events-after-long-press-during-momentum-scroll-in-overflow.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230959
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:12 AM Changeset in webkit [283225] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Make WebLocalizedString() thread-safe
https://bugs.webkit.org/show_bug.cgi?id=230954
Reviewed by Alexey Proskuryakov.
Make WebLocalizedString() thread-safe. It takes minimal effort to make it thread-safe given
that the NSBundle API is thread-safe [1] and clients keep calling it on the background thread.
[1] https://developer.apple.com/documentation/foundation/nslocalizedstringwithdefaultvalue
"As of OS X 10.11 and iOS 9, NSBundle is thread-safe. As such, you can safely call
NSLocalizedStringWithDefaultValue from any execution context."
- Misc/WebLocalizableStrings.mm:
- 9:10 AM Changeset in webkit [283224] by
-
- 2 edits in trunk/LayoutTests
[ iOS BigSur ] http/tests/appcache/fail-on-update.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227891
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:04 AM Changeset in webkit [283223] by
-
- 62 edits7 copies2 moves28 adds2 deletes in trunk/LayoutTests
Update css-ui WPT
https://bugs.webkit.org/show_bug.cgi?id=230900
rdar://83641111
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Update css/css-ui from WPT 016d2ddbb67ad29f36d175320e99986e7ad2571a.
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-ui/accent-color-checkbox-checked-001-notref.html: Added.
- web-platform-tests/css/css-ui/accent-color-checkbox-checked-001.tentative-expected.html: Added.
- web-platform-tests/css/css-ui/accent-color-checkbox-checked-001.tentative.html: Added.
- web-platform-tests/css/css-ui/accent-color-computed-expected.txt: Added.
- web-platform-tests/css/css-ui/accent-color-computed.html: Added.
- web-platform-tests/css/css-ui/accent-color-invalidation-currentcolor-expected.html: Added.
- web-platform-tests/css/css-ui/accent-color-invalidation-currentcolor.html: Added.
- web-platform-tests/css/css-ui/accent-color-parent-currentcolor-expected.html: Added.
- web-platform-tests/css/css-ui/accent-color-parent-currentcolor.html: Added.
- web-platform-tests/css/css-ui/accent-color-parsing-expected.txt: Added.
- web-platform-tests/css/css-ui/accent-color-parsing.html: Added.
- web-platform-tests/css/css-ui/accent-color-visited.tentative-expected.html: Added.
- web-platform-tests/css/css-ui/accent-color-visited.tentative.html: Added.
- web-platform-tests/css/css-ui/animation/accent-color-interpolation-expected.txt: Added.
- web-platform-tests/css/css-ui/animation/accent-color-interpolation.html: Added.
- web-platform-tests/css/css-ui/animation/w3c-import.log:
- web-platform-tests/css/css-ui/appearance-auto-001-expected.html:
- web-platform-tests/css/css-ui/appearance-auto-001.html:
- web-platform-tests/css/css-ui/appearance-auto-input-non-widget-001-expected.html: Added.
- web-platform-tests/css/css-ui/appearance-auto-input-non-widget-001.html: Added.
- web-platform-tests/css/css-ui/appearance-auto-non-html-namespace-001-expected.html: Added.
- web-platform-tests/css/css-ui/appearance-auto-non-html-namespace-001.html: Added.
- web-platform-tests/css/css-ui/appearance-button-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-menulist-001-expected.html.
- web-platform-tests/css/css-ui/appearance-button-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-auto-001.html.
- web-platform-tests/css/css-ui/appearance-checkbox-001-expected.html:
- web-platform-tests/css/css-ui/appearance-checkbox-001.html:
- web-platform-tests/css/css-ui/appearance-cssom-001.html:
- web-platform-tests/css/css-ui/appearance-initial-value-001.html:
- web-platform-tests/css/css-ui/appearance-listbox-001-expected.html:
- web-platform-tests/css/css-ui/appearance-listbox-001.html:
- web-platform-tests/css/css-ui/appearance-menulist-001-expected.html:
- web-platform-tests/css/css-ui/appearance-menulist-001.html:
- web-platform-tests/css/css-ui/appearance-menulist-button-001-expected.html:
- web-platform-tests/css/css-ui/appearance-menulist-button-001.html:
- web-platform-tests/css/css-ui/appearance-menulist-button-002-expected.html: Removed.
- web-platform-tests/css/css-ui/appearance-menulist-button-002.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-menulist-001-expected.html.
- web-platform-tests/css/css-ui/appearance-menulist-button-002.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-menulist-button-002.html.
- web-platform-tests/css/css-ui/appearance-meter-001-expected.html:
- web-platform-tests/css/css-ui/appearance-meter-001.html:
- web-platform-tests/css/css-ui/appearance-progress-bar-001-expected.html:
- web-platform-tests/css/css-ui/appearance-progress-bar-001.html:
- web-platform-tests/css/css-ui/appearance-progress-bar-002-expected.html:
- web-platform-tests/css/css-ui/appearance-progress-bar-002.html:
- web-platform-tests/css/css-ui/appearance-push-button-001-expected.html:
- web-platform-tests/css/css-ui/appearance-push-button-001.html:
- web-platform-tests/css/css-ui/appearance-radio-001-expected.html:
- web-platform-tests/css/css-ui/appearance-radio-001.html:
- web-platform-tests/css/css-ui/appearance-searchfield-001-expected.html:
- web-platform-tests/css/css-ui/appearance-searchfield-001.html:
- web-platform-tests/css/css-ui/appearance-slider-horizontal-001-expected.html:
- web-platform-tests/css/css-ui/appearance-slider-horizontal-001.html:
- web-platform-tests/css/css-ui/appearance-square-button-001-expected.html:
- web-platform-tests/css/css-ui/appearance-square-button-001.html:
- web-platform-tests/css/css-ui/appearance-textarea-001-expected.html:
- web-platform-tests/css/css-ui/appearance-textarea-001.html:
- web-platform-tests/css/css-ui/appearance-textfield-001.html:
- web-platform-tests/css/css-ui/outline-005.html:
- web-platform-tests/css/css-ui/outline-006.html:
- web-platform-tests/css/css-ui/parsing/resize-computed-expected.txt:
- web-platform-tests/css/css-ui/parsing/resize-computed.html:
- web-platform-tests/css/css-ui/resize-child-will-change-transform-expected.html: Added.
- web-platform-tests/css/css-ui/resize-child-will-change-transform.html: Added.
- web-platform-tests/css/css-ui/resize-generated-content-expected.html: Added.
- web-platform-tests/css/css-ui/resize-generated-content.html: Added.
- web-platform-tests/css/css-ui/text-overflow-002-expected.html:
- web-platform-tests/css/css-ui/text-overflow-004-expected.html:
- web-platform-tests/css/css-ui/text-overflow-022-expected.html:
- web-platform-tests/css/css-ui/translucent-outline-expected.html: Added.
- web-platform-tests/css/css-ui/translucent-outline.html: Added.
- web-platform-tests/css/css-ui/w3c-import.log:
- web-platform-tests/css/css-ui/webkit-appearance-auto-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-auto-input-non-widget-001-expected.html: Added.
- web-platform-tests/css/css-ui/webkit-appearance-auto-input-non-widget-001.html: Added.
- web-platform-tests/css/css-ui/webkit-appearance-button-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-menulist-001-expected.html.
- web-platform-tests/css/css-ui/webkit-appearance-button-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-auto-001.html.
- web-platform-tests/css/css-ui/webkit-appearance-checkbox-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-listbox-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-menulist-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-menulist-button-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-menulist-button-002-expected.html: Removed.
- web-platform-tests/css/css-ui/webkit-appearance-menulist-button-002.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-menulist-001-expected.html.
- web-platform-tests/css/css-ui/webkit-appearance-menulist-button-002.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/webkit-appearance-menulist-button-002.html.
- web-platform-tests/css/css-ui/webkit-appearance-meter-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-progress-bar-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-progress-bar-002-expected.html: Added.
- web-platform-tests/css/css-ui/webkit-appearance-progress-bar-002.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-progress-bar-002.html.
- web-platform-tests/css/css-ui/webkit-appearance-push-button-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-radio-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-searchfield-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-slider-horizontal-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-square-button-001-expected.html:
- web-platform-tests/css/css-ui/webkit-appearance-textarea-001-expected.html:
LayoutTests:
Remove deleted tests.
- platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
- 9:02 AM Changeset in webkit [283222] by
-
- 2 edits in trunk/LayoutTests
[iOS] http/tests/appcache/fail-on-update.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227891
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:40 AM Changeset in webkit [283221] by
-
- 43 edits in trunk
Font palette names have to start with two hyphens
https://bugs.webkit.org/show_bug.cgi?id=230790
<rdar://problem/83530013>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Tests are being upstreamed at https://github.com/web-platform-tests/wpt/pull/30963.
- web-platform-tests/css/css-fonts/font-palette-add-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-add-2.html:
- web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-add.html:
- web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-empty-font-family.html:
- web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-modify-2.html:
- web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-modify.html:
- web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-remove-2.html:
- web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-remove.html:
- web-platform-tests/css/css-fonts/font-palette.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-2.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-computed-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-computed.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-invalid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-valid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
Source/WebCore:
The spec changed in
https://github.com/w3c/csswg-drafts/commit/9ddf9388a2fe0ac300c41b7244e10c0a40fe0cae.
Font palettes now have to be named with a <dashed-ident>.
Updated existing tests.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontPalette):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeDashedCustomIdent):
- css/parser/CSSPropertyParserHelpers.h:
- 8:39 AM Changeset in webkit [283220] by
-
- 9 edits in trunk/Source/WebKit
Add support for sending Expected<void, E> in IPC messages
https://bugs.webkit.org/show_bug.cgi?id=230907
Reviewed by Chris Dumez.
- Platform/IPC/ArgumentCoders.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::registerExtension):
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::showExtensionTab):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::showExtensionTab):
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector unregisterExtension:completionHandler:]):
(-[_WKInspector showExtensionTabWithIdentifier:completionHandler:]):
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController unregisterExtension:completionHandler:]):
(-[_WKRemoteWebInspectorViewController showExtensionTabWithIdentifier:completionHandler:]):
ReplaceExpected<bool, ...>withExpected<void, ...>now that it can be sent over IPC.
No change in functionality as theboolwas never actually used (it was a hardcodedtrue).
- 8:38 AM Changeset in webkit [283219] by
-
- 7 edits in trunk
CSSFontPaletteValuesRule should not be maplike
https://bugs.webkit.org/show_bug.cgi?id=230793
<rdar://problem/83530242>
Reviewed by Wenson Hsieh.
LayoutTests/imported/w3c:
The tests are being upstreamed in https://github.com/web-platform-tests/wpt/pull/30966.
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
Source/WebCore:
The spec changed in
https://github.com/w3c/csswg-drafts/commit/c10855a2c65f51a09697613b977059fae78ff0bc
from "maplike<unsigned long, CSSOMString>" to "attribute CSSOMString overrideColor".
Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html
imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
- css/CSSFontPaletteValuesRule.cpp:
(WebCore::CSSFontPaletteValuesRule::basePalette const):
(WebCore::CSSFontPaletteValuesRule::overrideColor const):
(WebCore::CSSFontPaletteValuesRule::cssText const):
(WebCore::CSSFontPaletteValuesRule::initializeMapLike): Deleted.
- css/CSSFontPaletteValuesRule.h:
- css/CSSFontPaletteValuesRule.idl:
- 8:36 AM Changeset in webkit [283218] by
-
- 2 edits in trunk/Source/WTF
[CSS Cascade Layers] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=230948
Reviewed by Simon Fraser.
Flip the switch.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 8:31 AM Changeset in webkit [283217] by
-
- 16 edits5 adds in trunk
[Cocoa] Support in-band chapter tracks
https://bugs.webkit.org/show_bug.cgi?id=230380
<rdar://problem/83218578>
Reviewed by Jer Noble.
Source/WebCore:
Create a text track for every non-empty AVAssetChapterMetadataGroup, and create
a VTT cue for every chapter.
Test: media/track/track-in-band-chapters.html
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::setClient):
(WebCore::InbandTextTrackPrivate::cueFormat const):
- platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.h: Added.
(WebCore::InbandChapterTrackPrivateAVFObjC::create):
(WebCore::InbandChapterTrackPrivateAVFObjC::setTextTrackIndex):
(WebCore::InbandChapterTrackPrivateAVFObjC::ChapterData::operator== const):
- platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.mm: Added.
(WebCore::InbandChapterTrackPrivateAVFObjC::InbandChapterTrackPrivateAVFObjC):
(WebCore::InbandChapterTrackPrivateAVFObjC::processChapters):
(WebCore::InbandChapterTrackPrivateAVFObjC::language const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setAsset):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataLoaded):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processChapterTracks):
(WebCore::assetMetadataKeyNames):
(-[WebCoreAVFMovieObserver chapterMetadataDidChange:]):
- platform/graphics/iso/ISOVTTCue.cpp:
(WebCore::ISOWebVTTCue::ISOWebVTTCue):
- platform/graphics/iso/ISOVTTCue.h:
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
LayoutTests:
- media/content/multi-language-chapters.mp4: Added.
- media/track/track-in-band-chapters-expected.txt: Added.
- media/track/track-in-band-chapters.html: Added.
- media/track/track-manual-mode.html: Updated because the movie file this uses has
in-band chapter tracks.
- media/track/track-manual-mode-expected.txt: Ditto.
- platform/glib/TestExpectations: Skipped.
- platform/win/TestExpectations: Skipped.
- 8:23 AM Changeset in webkit [283216] by
-
- 6 edits in trunk
[CSS Cascade Layers] Add fonts and keyframes in cascade layer order
https://bugs.webkit.org/show_bug.cgi?id=230947
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/layer-font-face-override-expected.txt:
- web-platform-tests/css/css-cascade/layer-keyframes-override-expected.txt:
Source/WebCore:
Ensure font and keyframe rules respect cascade layer ordering.
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::Builder::addChildRules):
Collect resolver mutating rules instead of processing them immediately.
(WebCore::Style::RuleSet::Builder::~Builder):
(WebCore::Style::RuleSet::Builder::addMutatingRulesToResolver):
Process the rules in correct order after cascade layer order has been established.
In additive case we need to also re-process rules added from earlier stylesheets as they might
have higher priority than the newly added ones.
(WebCore::Style::RuleSet::shrinkToFit):
- style/RuleSet.h:
(WebCore::Style::RuleSet::cascadeLayerOrderForIdentifier const):
(WebCore::Style::RuleSet::cascadeLayerOrderFor const):
- 7:38 AM Changeset in webkit [283215] by
-
- 2 edits2 adds in trunk/Tools/buildstream
[Flatpak SDK] Add bwrap and xdg-dbus-proxy
https://bugs.webkit.org/show_bug.cgi?id=230456
Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-29
Reviewed by Sergio Villar Senin.
These are needed in order to enable the Bubblewrap launcher in WPE/GTK at build time.
- elements/sdk-platform.bst:
- elements/sdk/bubblewrap.bst: Added.
- elements/sdk/xdg-dbus-proxy.bst: Added.
- 7:25 AM Changeset in webkit [283214] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] rr replay is broken
https://bugs.webkit.org/show_bug.cgi?id=230952
Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-29
Reviewed by Sergio Villar Senin.
- patches/rr/0001-cmake-Look-for-resources-in-cmake-s-install-lib-dir.patch: As lib
resources and bin resources don't necessarily share the same parent directory, one lookup
function is needed for each use-case.
- 4:12 AM Changeset in webkit [283213] by
-
- 2 edits2 adds in trunk/Tools/buildstream
[Flatpak SDK] rr unable to locate librrpage.so
https://bugs.webkit.org/show_bug.cgi?id=230942
Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-29
Reviewed by Sergio Villar Senin.
Look for resources in cmake's install lib dir.
- elements/sdk/rr.bst:
- patches/rr/0001-cmake-Look-for-resources-in-cmake-s-install-lib-dir.patch: Added.
Sep 28, 2021:
- 11:32 PM Changeset in webkit [283212] by
-
- 5 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: add settings option for 'Show Mock Web Extension Tab' in engineering builds
https://bugs.webkit.org/show_bug.cgi?id=230923
Reviewed by Devin Rousso.
This is an engineering-only facility to quickly check the behavior of
WebInspectorExtensionTabContentView (aka Web Extension Tabs). The behavior
of these tabs differs from other tabs, so it is important to make this easy to verify.
- UserInterface/Base/Setting.js: Add new setting.
- UserInterface/Debug/Bootstrap.js:
(updateMockWebExtensionTab):
(WI.runBootstrapOperations):
Call the InspectorFrontendAPI commands that would be called by WebInspectorUIExtensionController
to register an extension and create a tab for it.
- UserInterface/Debug/MockWebExtensionTab.html: Added.
This is adapted from InspectorExtension-basic-tab.html as used in TestWebKitAPI.
- UserInterface/Protocol/InspectorFrontendAPI.js: Fix a typo in the headerdoc
for createTabForExtension.
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createEngineeringSettingsView):
- 11:23 PM Changeset in webkit [283211] by
-
- 2 edits in trunk/Source/WTF
iOS simulator build should use PTHREAD_JIT_PERMISSIONS_API
https://bugs.webkit.org/show_bug.cgi?id=230920
rdar://77494871
Reviewed by Filip Pizlo.
In AppleSilicon macOS, we should use PTHREAD_JIT_PERMISSIONS_API for OSS build.
However, we are not enabling that for iOS simulator build. This patch enables that.
This API exists after iOS 14.0 SDK.
- wtf/PlatformUse.h:
- 9:52 PM Changeset in webkit [283210] by
-
- 18 edits in trunk/Source/WebCore
Factor out rare members of FontCreationContext into FontCreationContextRareData
https://bugs.webkit.org/show_bug.cgi?id=230800
<rdar://problem/83538227>
Reviewed by Alan Bujtas.
FontCreationContext is used inside HashMap keys in font caches, so we want the type to be
small. Palettes and font features are rare, so we can move those into a heap-allocated
rare data object, thereby decreasing the size of FontCreationContext for most fonts.
Importantly, if palettes and font features aren't used, the RefPtr will just be null, and
no allocation is performed.
No new tests because there is no behavior change.
- css/CSSFontFace.h:
- css/CSSFontFaceSource.h:
- css/CSSSegmentedFontFace.h:
- loader/FontLoadRequest.h:
- loader/cache/CachedFont.h:
- loader/cache/CachedFontLoadRequest.h:
- loader/cache/CachedSVGFont.h:
- platform/graphics/FontCreationContext.h:
(WebCore::FontCreationContextRareData::create):
(WebCore::FontCreationContextRareData::fontFaceFeatures const):
(WebCore::FontCreationContextRareData::fontPaletteValues const):
(WebCore::FontCreationContextRareData::operator== const):
(WebCore::FontCreationContextRareData::operator!= const):
(WebCore::FontCreationContextRareData::FontCreationContextRareData):
(WebCore::FontCreationContext::FontCreationContext):
(WebCore::FontCreationContext::fontFaceFeatures const):
(WebCore::FontCreationContext::fontFaceCapabilities const):
(WebCore::FontCreationContext::fontPaletteValues const):
(WebCore::FontCreationContext::operator== const):
(WebCore::add):
- platform/graphics/FontPaletteValues.h:
(WebCore::FontPaletteValues::operator bool const):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::addAttributesForFontPalettes):
(WebCore::preparePlatformFont):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/freetype/FontCacheFreeType.cpp:
- platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
- platform/graphics/mac/FontCustomPlatformData.h:
- workers/WorkerFontLoadRequest.h:
- 8:52 PM Changeset in webkit [283209] by
-
- 3 edits in trunk/Source/WebKit
Crash in WebKit::DisplayLink::displayLinkCallback()
https://bugs.webkit.org/show_bug.cgi?id=230917
<rdar://82528370>
Reviewed by Tim Horton.
We have evidence of a divide-by-zero crash in DisplayLink::notifyObserversDisplayWasRefreshed()
where m_currentUpdate.updatesPerSecond is zero. The only way I can see this happening
is if DisplayLink::DisplayLink() returns early, which should log. Protect against
this by initializing m_displayNominalFramesPerSecond to 60, and do another check,
with a log, in DisplayLink::addObserver() before we use m_displayNominalFramesPerSecond
for the first time.
Convert the logging to RELEASE_LOG_FAULT reports.
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::addObserver):
- UIProcess/mac/DisplayLink.h:
- 8:16 PM Changeset in webkit [283208] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Set CURL_LOCK_DATA_SSL_SESSION option to reduce SSL/TLS handshake time
https://bugs.webkit.org/show_bug.cgi?id=230818
Reviewed by Fujii Hironori.
Set CURL_LOCK_DATA_SSL_SESSION option to reuse Session ID.
It reduces SSL/TLS handshake time.
Covered by existing tests.
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlShareHandle::CurlShareHandle):
(WebCore::CurlShareHandle::mutexFor):
- 6:45 PM BuildingCairoOnWindows edited by
- (diff)
- 6:33 PM Changeset in webkit [283207] by
-
- 9 edits1 add in trunk
DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>
Reviewed by Mark Lam.
JSTests:
- stress/verify-can-gc-node-index.js: Added.
(gen):
(f):
Source/JavaScriptCore:
- dfg/DFGDoesGCCheck.h:
(JSC::DFG::DoesGCCheck::DoesGCCheck):
(JSC::DFG::DoesGCCheck::encode):
(JSC::DFG::DoesGCCheck::set):
(JSC::DFG::DoesGCCheck::expectDoesGC const):
(JSC::DFG::DoesGCCheck::isSpecial const):
(JSC::DFG::DoesGCCheck::special):
(JSC::DFG::DoesGCCheck::nodeOp):
(JSC::DFG::DoesGCCheck::nodeIndex):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoopHint):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- 6:31 PM Changeset in webkit [283206] by
-
- 2 edits5 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=230927
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-28
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-7_1-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-7_2-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-7_3.sub-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-redir-bug.sub-expected.txt: Added.
- 5:26 PM Changeset in webkit [283205] by
-
- 5 edits in branches/safari-612-branch/Source
Cherry-pick r283156. rdar://problem/83648190
Vorbis decoder can't be instantiated - Remove workaround added in bug 228139
https://bugs.webkit.org/show_bug.cgi?id=230742
rdar://83484414
Reviewed by Eric Carlson.
Source/WebKit:
This is already covered by test; however this will fail on Monterey without the updated
CoreMedia framework.
- Scripts/process-entitlements.sh: Add new required entitlement.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox): Only have bug workaround on BigSur and earlier.
Source/WTF:
- wtf/PlatformUse.h: Add USE_VORBIS_AUDIOCOMPONENT_WORKAROUND
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:26 PM Changeset in webkit [283204] by
-
- 5 edits in trunk/Source/WebKit
Remove unused "com.apple.security.exception.file*" rules from WebKit sandboxes
https://bugs.webkit.org/show_bug.cgi?id=230918
<rdar://problem/66585844>
Reviewed by Per Arne Vollan.
The Sandbox implementation provides a mechanism where apps can extend the default app
sandbox with entitled extension properties attached to their binary at signing time.
WebKit does not need or use this feature. However, the rules were imported to our custom
sandbox when we stopped using the system one. We should remove these rules since we don't
need them, and they add to the size and complexity of the sandbox rule set.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 5:25 PM Changeset in webkit [283203] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.2.10
- 4:16 PM Changeset in webkit [283202] by
-
- 1 copy in branches/safari-613.1.3-branch
New branch.
- 3:32 PM Changeset in webkit [283201] by
-
- 1 copy in tags/Safari-612.2.9
Tag Safari-612.2.9.
- 3:23 PM Changeset in webkit [283200] by
-
- 1 copy in tags/Safari-612.2.6.1.2
Tag Safari-612.2.6.1.2.
- 3:19 PM Changeset in webkit [283199] by
-
- 9 edits4 moves in trunk/Source/WebCore
Move
DrawGlyphsRecorderoutside ofDisplayList
https://bugs.webkit.org/show_bug.cgi?id=230912
Reviewed by Myles Maxfield.
There's really nothing about
DrawGlyphsRecorderthat's specific to display lists other
than it's currently only being used byDisplayList::Recorder.
This patch moves
DrawGlyphsRecorderoutside ofnamespace DisplayList(and the related
folder in the source tree). The next patch (<https://webkit.org/b/230913>) will generalize
it to allow anyGraphicsContextinstead of justDisplayList::Recorder. This is being
done to make<attachment>drawing work in the GPUProcess (<https://webkit.org/b/230781>).
- platform/graphics/DrawGlyphsRecorder.h: Renamed from Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h.
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp: Renamed from Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp.
- platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp: Renamed from Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp.
- platform/graphics/win/DrawGlyphsRecorderWin.cpp: Renamed from Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
- platform/graphics/displaylists/DisplayListRecorder.h:
- Headers.cmake:
- PlatformAppleWin.cmake:
- PlatformWinCairo.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/FreeType.cmake:
- 3:06 PM Changeset in webkit [283198] by
-
- 2 edits in trunk/LayoutTests
Marking more tests crashing with uncaught exception 'NSInvalidArgumentException'
rdar://83592102
Unreviewed test gardening.
- 3:03 PM Changeset in webkit [283197] by
-
- 2 edits in trunk/Source/WebCore
Negative integers in @font-palette-values are invalid
https://bugs.webkit.org/show_bug.cgi?id=230788
Reviewed by Simon Fraser.
<rdar://problem/83528806>
Addressing post-commit review.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::addAttributesForFontPalettes):
- 2:28 PM Changeset in webkit [283196] by
-
- 14 edits3 adds in trunk
[Cocoa] Add SPI to select a tab created by _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=230580
<rdar://problem/83372851>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Add a method to look up a WebInspectorExtensionTabContentView
by its extensionTabID and then show it with WI.tabBrowser.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.reloadForExtension):
Remove extra newlines.
(WI.WebInspectorExtensionController.prototype.showExtensionTab): Added.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showExtensionTab): Added.
Source/WebKit:
Add a new method for selecting an extension tab in WebInspectorUI
that was previously created by using
-[_WKInspectorExtension createNewTab:tabIconURL:sourceURL:completionHandler].
This is a straightforward plumbing exercise. The API test uses the new method
to test the existing _WKInspectorExtensionDelegate callback methods for
didShowTab and didHideTab.
New API test: WKInspectorExtensionDelegate.ShowAndHideTabCallbacks.
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector showExtensionTabWithIdentifier:completionHandler:]):
- UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController showExtensionTabWithIdentifier:completionHandler:]):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::showExtensionTab):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::showExtensionTab):
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
Tools:
Create a new test file for _WKInspectorExtensionDelegate. Add a
new test case that exercises creating an extension tab, showing an
extension tab, and uses delegate callbacks for didShowTab/didHideTab.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/InspectorExtension-TabIcon-30x30.png: Added.
- TestWebKitAPI/Tests/WebKitCocoa/InspectorExtension-basic-tab.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm: Added.
(resetGlobalState):
(-[UIDelegateForTestingInspectorExtensionDelegate _webView:didAttachLocalInspector:]):
(-[InspectorExtensionDelegateForTesting inspectorExtension:didShowTabWithIdentifier:]):
(-[InspectorExtensionDelegateForTesting inspectorExtension:didHideTabWithIdentifier:]):
(TEST):
- 2:16 PM Changeset in webkit [283195] by
-
- 4 edits in trunk/Source/WebKit
Remove redundant sandbox exception rules for registering mach extensions
https://bugs.webkit.org/show_bug.cgi?id=230909
<rdar://problem/66583587>
Reviewed by Per Arne Vollan.
The Sandbox implementation offers a mechanism for apps to extend their sandbox at compile
time. WebKit does not use those extensions in its sandbox design, so we should remove those
unused rules. They are left-over from importing the global App Sandbox rules long ago, and
are not needed by WebKit.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 2:13 PM Changeset in webkit [283194] by
-
- 9 edits in trunk
PCM: different bundleID entries will override each other
https://bugs.webkit.org/show_bug.cgi?id=230839
Reviewed by Alex Christensen.
Source/WebKit:
We recently added a bundleID column to PCM tables. We want to make
sure entries with different bundleIDs do not override each other,
so we should make it a part of the unique constraint on both PCM
tables that contain it. This requires creating new tables and
migrating existing data to them. Luckily this code already exists
in the ITP database, and we can just move it to the shared
DatabaseUtilities class.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::expectedTableAndIndexQueries):
(WebKit::stripIndexQueryToMatchStoredValue): Deleted.
(WebKit::expectedTableAndIndexQueries): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries): Deleted.
(WebKit::insertDistinctValuesInTableStatement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/DatabaseUtilities.cpp:
(WebKit::DatabaseUtilities::stripIndexQueryToMatchStoredValue):
(WebKit::DatabaseUtilities::currentTableAndIndexQueries):
(WebKit::insertDistinctValuesInTableStatement):
(WebKit::DatabaseUtilities::migrateDataToNewTablesIfNecessary):
- NetworkProcess/DatabaseUtilities.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::Database):
(WebKit::PCM::Database::expectedTableAndIndexQueries):
(WebKit::PCM::Database::createUniqueIndices):
(WebKit::PCM::Database::needsUpdatedSchema):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
Tools:
API test coverage for the case of existing PCM data with a bundleID
column but an expired unique index.
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(addUnattributedPCMv4):
(addAttributedPCMv4):
(dumpedPCM):
(pollUntilPCMIsMigrated):
(emptyPcmDBPath):
(createAndPopulatePCMObservedDomainTable):
(setUpFromResourceLoadStatisticsDatabase):
(setUpFromPCMDatabase):
(TEST):
(setUp): Deleted.
- 2:10 PM Changeset in webkit [283193] by
-
- 7 edits in trunk
Preserve color space when structured cloning ImageBitmaps
https://bugs.webkit.org/show_bug.cgi?id=230429
<rdar://problem/83293533>
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
The test added in https://bugs.webkit.org/show_bug.cgi?id=230429 was
buggy, in that by the time the "message" event handler ran, the
values for the various test configuration variables had changed. The
key bugfix here is checking for the right testID value in the message
event handler, but the test is rewritten more substantially to be a bit
clearer and less indented.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned-expected.txt:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html:
Source/WebCore:
The logic for serializing the CGColorSpace is copied and adapted from
the ArgumentCoder<CGColorSpaceRef> specialization, which we cannot
easily re-use.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
(WebCore::CloneDeserializer::readImageBitmap):
LayoutTests:
- fast/storage/serialized-script-value.html: Bump the current version
number.
- 2:00 PM Changeset in webkit [283192] by
-
- 18 edits14 adds1 delete in trunk
CSP: Implement 'strict-dynamic' source expression
https://bugs.webkit.org/show_bug.cgi?id=184031
<rdar://problem/38900632>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
Included passing tests and also expectations for partially passing
tests where the failures are unrelated to strict-dynamic because it
will help prevent regressions to the passing components.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions-expected.txt: Removed.
This doesn't go with a corresponding html file, so I deleted it.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.sub-expected.txt:
We strip cross origin blocked URIs before reporting them, so this test
times out because it never receives the correct blockedURI in the
report.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt: Added.
Timing out because we don't specify the violation target ID in our
report. Tracking in rdar://83425187.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_worker-importScripts.https-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_worker.https-expected.txt: Added.
Test failure related to workers, not strict-dynamic.
Source/WebCore:
Partially implements 'strict-dynamic' CSP source expression. strict-dynamic
allows scripts with specified nonces and hashes to run, as well as
descendents of those scripts, or "non parser inserted" scripts.
It ignores unsafe-inline and self source expressions.
This patch creates a new algorithm ContentSecurityPolicy::allScriptPoliciesAllow
which makes sure each loaded script is allowed by some part of the
policy. If it violates each of the script policies, then we block it
and report a violation.
We only have access to whether a script is parser-inserted in ScriptElement.
To avoid having to pass that value and the script nonce through a lot of
places, we check for script violations in
ScriptElement::requestClassicScript. To avoid unnecessarily blocking
scripts with correct nonces or non-parser inserted scripts in
ContentSecurityPolicy::allowScriptFromSource which is called later on,
we skip the extra check if strictDynamic is enabled. This is not
ideal and in the future we should figure out a way to put all checks
in one place.
- dom/ScriptElement.cpp:
Update m_parserInserted to be an enum.
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::didFinishInsertingNode):
(WebCore::ScriptElement::childrenChanged):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::executeClassicScript):
strict-dynamic checks happen here.
(WebCore::ScriptElement::ignoresLoadRequest const):
- dom/ScriptElement.h:
(WebCore::ScriptElement::isParserInserted const):
(WebCore::ScriptElement::insertedIntoAncestor const):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const):
Algorithm to check for policy violations. Here we check if the script
is non-parser inserted AND it does not have a recognized nonce or hash
AND it is not listed in the URL list of the policy. If it fails all
checks then the policy does not support it and we refuse to load it.
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::shouldPerformEarlyCSPCheck const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
To avoid blocking scripts that are OK with strict-dynamic, we should
skip unsafe-inline checks (which should be ignored per the spec).
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::reportViolation const):
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::checkNonParserInsertedScripts):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForParserInsertedScript const):
(WebCore::ContentSecurityPolicyDirectiveList::strictDynamicIncluded):
A separate function to tell us if strict-dynamic is included in the
CSP policies.
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::matches const):
(WebCore::ContentSecurityPolicySourceList::parseSource):
Ignore 'self' and 'unsafe-inline' directives if 'strict-dynamic' is
specified.
- page/csp/ContentSecurityPolicySourceList.h:
(WebCore::ContentSecurityPolicySourceList::allowNonParserInsertedScripts const):
- page/csp/ContentSecurityPolicySourceListDirective.h:
(WebCore::ContentSecurityPolicySourceListDirective::allowNonParserInsertedScripts const):
LayoutTests:
- 1:34 PM Changeset in webkit [283191] by
-
- 2 edits in trunk/LayoutTests
[ Catalina BigSur wk1 Debug ] storage/websql/multiple-databases-garbage-collection.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230910.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 1:04 PM Changeset in webkit [283190] by
-
- 2 edits in trunk/Tools
Added GlobalSign R3/R5 Root CA cert to webkitcorepy to resolve certain pip module download SSL error.
https://bugs.webkit.org/show_bug.cgi?id=230904
Patch by Eddy Wong <eddy_wong@apple.com> on 2021-09-28
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitcorepy/webkitcorepy/cacert.pem:
- 1:00 PM Changeset in webkit [283189] by
-
- 8 edits in branches/safari-612.2.6.1-branch/Source
Versioning.
WebKit-7612.2.6.1.2
- 12:53 PM Changeset in webkit [283188] by
-
- 11 edits in trunk
Negative integers in @font-palette-values are invalid
https://bugs.webkit.org/show_bug.cgi?id=230788
<rdar://problem/83528806>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
This is being upstreamed at https://github.com/web-platform-tests/wpt/pull/30961.
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
Source/WebCore:
The spec made it illegal in
https://github.com/w3c/csswg-drafts/commit/09b3c45238feb6c0e8526e010cd3780f4fc4900b.
Test: web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html
- css/CSSFontPaletteValuesRule.cpp:
(WebCore::CSSFontPaletteValuesRule::basePalette const):
(WebCore::CSSFontPaletteValuesRule::initializeMapLike):
(WebCore::CSSFontPaletteValuesRule::cssText const):
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasePaletteDescriptor):
(WebCore::consumeOverrideColorDescriptor):
- platform/graphics/FontPaletteValues.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::addAttributesForFontPalettes):
- 12:15 PM Changeset in webkit [283187] by
-
- 9 edits in trunk/Source/WebKit
Explicitly deny 'system-privilege' in the sandbox profile as a hardening measure
https://bugs.webkit.org/show_bug.cgi?id=230782
<rdar://problem/66582813>
Reviewed by Per Arne Vollan.
Although we do not need 'system-privilege', the default sandbox state includes it as a convenience
for backwards-compatibility.
Update our sandboxes to tell the kernel we don't need the support, except for one case in the
Networking process.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:06 PM Changeset in webkit [283186] by
-
- 2 edits in trunk/Source/WebCore
[BigSur wk2 Debug iOS14 ] webrtc/video-mute.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230865
<rdar://problem/83594770>
Reviewed by Eric Carlson.
Covered by webrtc/video-mute.html being no longer flaky.
- Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.cpp:
(WebCore::LibWebRTCIceTransportBackendObserver::start):
- 11:42 AM Changeset in webkit [283185] by
-
- 3 edits in trunk/LayoutTests
[ iOS, Mac ] imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230905.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 11:08 AM Changeset in webkit [283184] by
-
- 47 edits1 copy1 add in trunk
Make StorageManager available in Worker
https://bugs.webkit.org/show_bug.cgi?id=230675
<rdar://problem/83448115>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:
- web-platform-tests/storage/estimate-indexeddb.https.any.worker-expected.txt:
- web-platform-tests/storage/estimate-parallel.https.any.worker-expected.txt:
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker-expected.txt:
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker-expected.txt:
- web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker-expected.txt:
- web-platform-tests/storage/idlharness.https.any.worker-expected.txt:
- web-platform-tests/storage/persisted.https.any.worker-expected.txt:
- web-platform-tests/storage/storagemanager-estimate.https.any.worker-expected.txt:
- web-platform-tests/storage/storagemanager-persist.https.worker-expected.txt:
- web-platform-tests/storage/storagemanager-persisted.https.any.worker-expected.txt:
Source/WebCore:
Introduce WorkerStorageConnection class, which dispatches StorageManager task to main-thread StorageConnection
and dispatches result back to worker thread.
Rebaselined existing test.
- Modules/storage/DummyStorageProvider.h:
- Modules/storage/StorageConnection.h:
(WebCore::StorageConnection::persist):
- Modules/storage/StorageManager.cpp:
(WebCore::connectionInfo):
- Modules/storage/WorkerStorageConnection.cpp: Added.
(WebCore::WorkerStorageConnection::create):
(WebCore::WorkerStorageConnection::WorkerStorageConnection):
(WebCore::WorkerStorageConnection::scopeClosed):
(WebCore::WorkerStorageConnection::getPersisted):
(WebCore::WorkerStorageConnection::didGetPersisted):
(WebCore::WorkerStorageConnection::fileSystemGetDirectory):
- Modules/storage/WorkerStorageConnection.h: Copied from Source/WebCore/Modules/storage/StorageConnection.h.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::permissionController):
(WebCore::ScriptExecutionContext::storageConnection): Deleted.
- page/NavigatorStorage.idl:
- page/WorkerNavigator.idl:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::prepareForDestruction):
(WebCore::WorkerGlobalScope::storageConnection):
- workers/WorkerGlobalScope.h:
- workers/WorkerLoaderProxy.h:
(WebCore::WorkerLoaderProxy::storageConnection):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::storageConnection):
- workers/WorkerMessagingProxy.h:
Source/WebKit:
- WebProcess/WebCoreSupport/WebStorageConnection.cpp:
(WebKit::WebStorageConnection::getPersisted):
- WebProcess/WebCoreSupport/WebStorageConnection.h:
- 11:06 AM Changeset in webkit [283183] by
-
- 14 edits in trunk/Source/WebKit
Enable CFPrefs direct mode in all WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=230771
<rdar://problem/83510055>
Reviewed by Brent Fulgham.
We currently enable CFPrefs direct mode in the WebContent and GPU Process, and we should enable it in all WebKit processes.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::notifyPreferencesChanged):
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceMain):
(WebKit::shouldEnableCFPrefsDirectMode): Deleted.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::notifyPreferencesChanged):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::WebAuthnProcessProxy::singletonIfCreated):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
- WebAuthnProcess/WebAuthnProcess.cpp:
(WebKit::WebAuthnProcess::notifyPreferencesChanged):
- WebAuthnProcess/WebAuthnProcess.h:
- WebAuthnProcess/WebAuthnProcess.messages.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- 11:06 AM Changeset in webkit [283182] by
-
- 3 edits in trunk/Source/WebKit
[GPUP] Add sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=230859
<rdar://problem/83591291>
Reviewed by Brent Fulgham.
Add more sandbox telemetry to the GPU process' sandbox on iOS and macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 10:55 AM Changeset in webkit [283181] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Allow access to mach service for root in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=230843
<rdar://problem/83576091>
Reviewed by Alexey Proskuryakov.
Allow access to the mach service com.apple.trustd for root in the Networking process on macOS.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 10:55 AM Changeset in webkit [283180] by
-
- 5 edits1 add in trunk
Validate DeviceIdHashSaltStorage persistent data
https://bugs.webkit.org/show_bug.cgi?id=230852
<rdar://problem/83615408>
Reviewed by Eric Carlson.
Source/WebKit:
Add nullptr check to decoded data.
Covered by API test.
- UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::loadStorageFromDisk):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
- TestWebKitAPI/Tests/WebKit/invalidDeviceIDHashSalts: Added.
- 10:22 AM ControlFlowIntegrityinWebKit created by
- 10:22 AM WPEAndroid edited by
- (diff)
- 10:22 AM ContributingtoWebInspector created by
- 10:21 AM Divingintobmalloc created by
- 10:21 AM Changeset in webkit [283179] by
-
- 58 edits1 copy1 add in trunk
Move Cross-Origin-Opener-Policy handling to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=230812
<rdar://83504842>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline a couple of WPT tests due to some extra logging.
- web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
Source/WebCore:
Previous, COOP handling was fully implemented in the WebContent process. This meant that a
WebProcess for origin A could get a network response with COOP header from origin B, decide
that cross-origin isolation is needed and ask the UIProcess to process-swap. This was not a
good design given that the WebContent process is not a trusted process. We should not trust
the WebProcess for origin A to make the swap on behavior of origin B. Also, the network
response from origin B may contain sensitive headers that we don't want origin A's WebProcess
to see.
To address these issues, I have moved COOP handling from the WebContent process to the
NetworkProcess. As soon as the NetworkProcess gets the network response, it makes the decision
whether or not cross-origin isolation is needed. If isolation is needed, the network process
asks the UIProcess directly to continue the load in a new WebProcess instead of sending the
network response to the currently associated WebProcess. When the new WebProcess resumes the
load, the network process sends it the network response it already has.
I moved most of the COOP specification implementation from DocumentLoader.cpp/h to
CrossOriginOpenerPolicy.cpp/h so that we can leverage it from the NetworkResourceLoader in
the network process. We still have to do *some* COOP handling at DocumentLoader level
currently for non-initial navigations to about:blank given that those can trigger a browsing
context group switch but currently do not involve the network process. I also had to add
more information to NetworkResourceLoadParameters so that we are able to make appropriate
COOP decisions in the NetworkProcess.
No new tests, covered by existing COOP tests that are still passing.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.h:
- loader/CrossOriginOpenerPolicy.cpp:
(WebCore::checkIfCOOPValuesRequireBrowsingContextGroupSwitch):
(WebCore::checkIfEnforcingReportOnlyCOOPWouldRequireBrowsingContextGroupSwitch):
(WebCore::computeResponseOriginAndCOOP):
(WebCore::enforceResponseCrossOriginOpenerPolicy):
(WebCore::obtainCrossOriginOpenerPolicy):
(WebCore::sendViolationReportWhenNavigatingToCOOPResponse):
(WebCore::sendViolationReportWhenNavigatingAwayFromCOOPResponse):
(WebCore::doCrossOriginOpenerHandlingOfResponse):
(WebCore::CrossOriginOpenerPolicyEnforcementResult::from):
- loader/CrossOriginOpenerPolicy.h:
(WebCore::CrossOriginOpenerPolicy::reportingEndpointForDisposition const):
(WebCore::CrossOriginOpenerPolicy::hasReportingEndpoint const):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::clearMainResource):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::crossOriginOpenerPolicy const):
(WebCore::DocumentLoader::isContinuingLoadAfterProvisionalLoadStarted const):
(WebCore::DocumentLoader::setIsContinuingLoadAfterProvisionalLoadStarted):
Move most of the COOP logic from DocumentLoader.cpp to CrossOriginOpenerPolicy.cpp, so that
it can be reused by NetworkResourceLoader in the network process.
- loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForResponse):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::load):
- loader/FrameLoader.h:
- loader/FrameLoaderClient.h:
- loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction):
- loader/NavigationAction.h:
(WebCore::NavigationAction::requester const):
(WebCore::NavigationAction::isEmpty const):
- loader/NavigationRequester.cpp: Added.
- loader/NavigationRequester.h: Added.
Extracted NavigationAction::Requester to its own header and rename it to NavigationRequester,
so that its implementation can be shared between NavigationAction, NetworkResourceLoadParameters
and COOP.
- loader/ReportingEndpointsCache.cpp:
(WebCore::ReportingEndpointsCache::addEndPointsFromResponse):
(WebCore::ReportingEndpointsCache::addEndPointsFromReportToHeader):
- loader/ReportingEndpointsCache.h:
- loader/ShouldTreatAsContinuingLoad.h:
- page/Page.h:
Source/WebKit:
Implement COOP handling in the NetworkProcess, inside the NetworkResourceLoader class.
This was logic that was currently implemented at DocumentLoader-level, in the WebProcess.
- NetworkProcess/NetworkProcess.cpp:
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::doCrossOriginOpenerHandlingOfResponse):
(WebKit::toBrowsingContextGroupSwitchDecision):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::triggerBrowsingContextGroupSwitchForNavigation):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViolationReportWhenNavigatingToCOOPResponse):
(WebKit::WebPage::sendViolationReportWhenNavigatingAwayFromCOOPResponse):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
Source/WebKitLegacy/win:
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
- WebCoreSupport/WebFrameLoaderClient.h:
Tools:
Port COOP API tests from PSONSchemeHandler to HTTPServer. This was necessary since custom scheme handler
loads do not go via the networkProcess (Where COOP handling is now implemented).
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[PSONNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[PSONScheme webView:startURLSchemeTask:]):
- TestWebKitAPI/cocoa/HTTPServer.h:
- 10:21 AM September 2021 Meeting edited by
- Removed Standards Discussion (diff)
- 10:20 AM WPEAndroid created by
- 10:19 AM SVGinWebKitStatusofCompositing created by
- 10:19 AM RenderingUIandPrivacychallengesinWebXRBrowsers created by
- 10:18 AM WebGL2ANGLEandthedirecttoMetalCompilerinWebKit created by
- 10:17 AM DialogInert created by
- 10:17 AM TVontheWeb created by
- 10:14 AM September 2021 Meeting edited by
- Updated schedule (diff)
- 9:59 AM Changeset in webkit [283178] by
-
- 9 edits1 add1 delete in trunk/Source/bmalloc
[libpas] Fix coalescing of the large sharing pool and make it easy to introspect it (update to e4d20851ee9ff00f2962b349a9ff8465695a83d7)
https://bugs.webkit.org/show_bug.cgi?id=230867
Reviewed by Yusuke Suzuki.
This adds the ability to enable the libpas status reporter, adds a large sharing pool dump to
the status report, and fixes a large sharing pool coalescing bug found by doing that. Previously
we weren't coalescing things that are not free+committed.
Also updates the export script that I use to keep the libpas git repo in sync with what's in WK.
The large sharing pool is the mechanism by which libpas can find memory that can be decommitted
across isolated large heaps, even if those large heaps share pages with one another. The main
data structure is a red-black tree of nodes that represent memory ranges. If there are two
adjacent ranges of memory that are both fully live and committed or both decommitted, then we
want those to be represented using a single node. That wasn't quite working right. Even the
libpas test for this was testing the wrong thing. This fixes the behavior and the test. It's
perf-neutral since large heaps usually have a small number of objects in them anyway.
The new status reporting functionality can be enabled with the WebKitPasStatusReporter
environment variable. This takes an integer that tells the amount of data in the report. Here
are the recognized values:
1 - just report number of heaps
2 - something in between 1 and 3
3 - report everything that the status reporter can report right now (per-page data for
segregated/bitfit heaps, lots of details for large heaps)
If the status reporter ever reported per-object information, it would be at level 4 or higher.
It's safe to pass 9999 or whatever if you just want the maximum report that libpas supports.
TL;DR for now you usually want WebKitPasStatusReporter=3.
- bmalloc/Environment.cpp:
(bmalloc::Environment::Environment):
- libpas/export.rb: Added.
- libpas/export.sh: Removed.
- libpas/src/libpas/pas_bitfit_directory.c:
(pas_bitfit_directory_construct): I needed to rationalize how we initialize disabled directories to make status reporting work.
(pas_bitfit_directory_get_first_free_view):
- libpas/src/libpas/pas_large_sharing_pool.c:
(states_match):
- libpas/src/libpas/pas_status_reporter.c:
(pas_status_reporter_dump_bitfit_directory):
(dump_large_sharing_pool_node_callback):
(pas_status_reporter_dump_large_sharing_pool):
(pas_status_reporter_dump_everything):
- libpas/src/libpas/pas_status_reporter.h:
- libpas/src/test/LargeSharingPoolDump.cpp:
- libpas/src/test/LargeSharingPoolDump.h:
- libpas/src/test/LargeSharingPoolTests.cpp:
(std::Range::Range):
(std::Range::operator== const):
(std::Range::operator!= const):
(std::operator<<):
(std::assertState):
(std::testGoodCoalesceEpochUpdate):
(addLargeSharingPoolTests):
(std::testBadCoalesceEpochUpdate): Deleted.
- 9:55 AM Changeset in webkit [283177] by
-
- 5 edits in trunk/Tools
Move iOS, watchOS, and tvOS queues to latest releases
https://bugs.webkit.org/show_bug.cgi?id=230837
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/factories_unittest.py:
(TestExpectedBuildSteps):
- CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
- CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css:
(table.queue-grid tr.platform.ios-simulator-14 img.logo): Deleted.
(table.queue-grid tr.platform.ios-14 img.logo): Deleted.
(table.queue-grid tr.platform.tvos-simulator-14 img.logo): Deleted.
(table.queue-grid tr.platform.tvos-14 img.logo): Deleted.
(table.queue-grid tr.platform.watchos-simulator-7 img.logo): Deleted.
(table.queue-grid tr.platform.watchos-7 img.logo): Deleted.
- 9:32 AM Changeset in webkit [283176] by
-
- 2 edits in trunk/Source/WebCore
[MSE][GStreamer] Don't create MediaSourceTrackGStreamer objects twice for the same track
https://bugs.webkit.org/show_bug.cgi?id=230829
Reviewed by Xabier Rodriguez-Calvar.
The existing code in
SourceBufferPrivateGStreamer::didReceiveInitializationSegment()
was not checking if the track already existing, creating and
immediately destroying a MediaSourceTrackGStreamer, which then crashed
on an assertion (ASSERTION FAILED: m_isRemoved).
This fixes the following two tests which were crashing with the former
assertion when running in Debug:
- media/media-source/media-mp4-h264-partial-abort.html
- media/media-source/media-source-abort-resets-parser.html
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
- 9:24 AM Changeset in webkit [283175] by
-
- 3 edits in trunk
[GTK][WPE] Bump libsoup3 version to 3.0.0
https://bugs.webkit.org/show_bug.cgi?id=230601
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-09-28
Reviewed by Philippe Normand.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 9:22 AM Changeset in webkit [283174] by
-
- 20 edits2 adds in trunk
Mostly fix Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=230868
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-28
Reviewed by Don Olmstead.
Source/JavaScriptCore:
- shell/PlatformMac.cmake:
Source/ThirdParty/ANGLE:
- Compiler.cmake:
- Metal.cmake:
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
Source/WebCore:
- PlatformMac.cmake:
- platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::encode):
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- PlatformMac.cmake:
Source/WebKitLegacy:
- PlatformMac.cmake:
Source/WTF:
- wtf/PlatformMac.cmake:
Tools:
- DumpRenderTree/PlatformMac.cmake:
- DumpRenderTree/TestNetscapePlugIn/PlatformMac.cmake: Added.
- TestRunnerShared/PlatformMac.cmake: Added.
- 9:20 AM Changeset in webkit [283173] by
-
- 4 edits2 adds in trunk
applyConstraints throws OverconstrainedError if specify exact for deviceId
https://bugs.webkit.org/show_bug.cgi?id=230819
<rdar://problem/83577361>
Reviewed by Eric Carlson.
Source/WebKit:
We were not setting properly the persistent device ID of remote sources.
Set values according provided device.
Test: fast/mediastream/applyConstraints-deviceId.html
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
(WebKit::RemoteRealtimeAudioSource::RemoteRealtimeAudioSource):
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource):
LayoutTests:
- fast/mediastream/applyConstraints-deviceId-expected.txt: Added.
- fast/mediastream/applyConstraints-deviceId.html: Added.
- 9:17 AM Changeset in webkit [283172] by
-
- 2 edits in trunk/Tools
REGRESSION (r283102): [ MacOS Debug ] TestWebKitAPI.WebKit2.CaptureIndicatorDelay is failing
https://bugs.webkit.org/show_bug.cgi?id=230847
<rdar://problem/83577251>
Reviewed by Saam Barati.
As identified by Saam, the promise resolution callback is racing with the stop function.
To prevent this, we check in a loop whether the page has a stream and call stop when that is the case.
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/getUserMedia.html:
- 9:09 AM Changeset in webkit [283171] by
-
- 5 edits in trunk/Source/WebCore
Fix build with non-internal Monterey SDK
https://bugs.webkit.org/show_bug.cgi?id=230872
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-28
Reviewed by Jonathan Bedard.
Source/WebCore:
- platform/mac/PlatformSpeechSynthesizerMac.mm:
(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h:
- pal/spi/mac/SystemPreviewSPI.h:
- 8:40 AM Changeset in webkit [283170] by
-
- 14 edits4 adds in trunk
[CSS Cascade Layers] Add CSSOM interface
https://bugs.webkit.org/show_bug.cgi?id=230882
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/parsing/layer-expected.txt: Added.
Source/WebCore:
Add a minimal CSSLayerRule interface. This is yet unspecified (https://github.com/w3c/csswg-drafts/issues/6576)
but the final version likely won't differ much or at all. This also matches Firefox.
This makes parsing and serialization WPT tests work.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSLayerRule.cpp: Added.
(WebCore::CSSLayerRule::CSSLayerRule):
(WebCore::CSSLayerRule::create):
(WebCore::CSSLayerRule::cssText const):
The only available functionality is getting the cssText.
- css/CSSLayerRule.h: Added.
- css/CSSLayerRule.idl: Added.
- css/CSSRule.h:
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper const):
Make the wrapper.
- css/StyleRuleType.h:
Update the type constant to match Firefox (this is not specified).
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::wrapperInsertRule):
Remember the return after succesful insert.
LayoutTests:
- 8:36 AM Changeset in webkit [283169] by
-
- 7 edits in trunk/Tools/buildstream
[Flatpak SDK] Update libsoup3 and friends
https://bugs.webkit.org/show_bug.cgi?id=230891
Reviewed by Michael Catanzaro.
- elements/sdk/glib.bst: Bump to 2.70, the most recent stable version.
- elements/sdk/libsoup3.bst: Bump to 3.0.0.
- elements/sdk/rr.bst: Drive-by update to latest master.
- elements/sdk/wpebackend-fdo.bst: Update to 1.10.0.
- 8:32 AM Changeset in webkit [283168] by
-
- 15 edits in trunk/Source/JavaScriptCore
Make byte codes with arithmetic profiles switch to using an index instead of a pointer in metadata
https://bugs.webkit.org/show_bug.cgi?id=230798
Reviewed by Yusuke Suzuki.
This patch makes each bytecode that uses a BinaryArithProfile/UnaryArithProfile
have an index into a table instead of storing a pointer to the profile in its metadata.
Then, we can just load the profile using the index in the bytecode, which saves memory.
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::allocateSharedProfiles):
- bytecode/UnlinkedCodeBlock.h:
- bytecode/UnlinkedCodeBlockGenerator.cpp:
(JSC::UnlinkedCodeBlockGenerator::finalize):
- bytecode/UnlinkedCodeBlockGenerator.h:
(JSC::UnlinkedCodeBlockGenerator::addBinaryArithProfile):
(JSC::UnlinkedCodeBlockGenerator::addUnaryArithProfile):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitInc):
(JSC::BytecodeGenerator::emitDec):
- bytecompiler/BytecodeGenerator.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_negate):
(JSC::JIT::emit_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_sub):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::updateArithProfileForUnaryArithOp):
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- 6:37 AM Changeset in webkit [283167] by
-
- 3 edits3 adds in trunk
Speed up setting JSFunction's "prototype" property
https://bugs.webkit.org/show_bug.cgi?id=230864
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/class-creation.js: Added.
- microbenchmarks/function-prototype-put-non-reified.js: Added.
- microbenchmarks/function-prototype-put-reified.js: Added.
Source/JavaScriptCore:
This patch:
- Removes "prototype" lookup from put(), which was non-inlineable and created an
interim object with "constructor" field. Instead, the new value is put directly,
with correct attributes, and respecting an altered receiver. This results in 2.8X
perf boost for very common case of setting "prototype":
Cat.prototype = new Animal.
- Simplifies initialization of class constructor's prototype object, removing tentacles
from getOwnPropertySlot() and extracting constructPrototypeObject() helper. Provides
a fast path for op_define_data_property, speeding up
classcreation by ~40%, while reifies normal function's prototype with correct attributes for Object.defineProperty().
- runtime/JSFunction.cpp:
(JSC::constructPrototypeObject):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
- 6:21 AM Changeset in webkit [283166] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, reverting r283136.
An assertion failure for WinCairo Debug
Reverted changeset:
"[Curl] Set CURL_LOCK_DATA_SSL_SESSION option to reduce
SSL/TLS handshake time"
https://bugs.webkit.org/show_bug.cgi?id=230818
https://commits.webkit.org/r283136
- 5:55 AM Changeset in webkit [283165] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r283158): TestWebKitAPI.WebKit.AddAndRemoveDataDetectors is crashing on iOS
https://bugs.webkit.org/show_bug.cgi?id=230890
Unreviewed.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
Scope TextIterator so it is not in stack when DOM is being mutated.
- 5:44 AM Changeset in webkit [283164] by
-
- 2 edits in trunk/Tools
Fix rounding issue in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=230889
Patch by Geza Lore <gezalore@gmail.com> on 2021-09-28
Reviewed by Adrian Perez de Castro.
- Scripts/run-jsc-stress-tests:
- 3:29 AM Changeset in webkit [283163] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=230876
- wtf/GenericTimeMixin.h:
(WTF::GenericTimeMixin::operator+=):
(WTF::GenericTimeMixin::operator-=):
- 3:15 AM Changeset in webkit [283162] by
-
- 7 edits3 copies31 adds10 deletes in trunk/LayoutTests
[CSS Cascade Layers] Import more WPT tests
https://bugs.webkit.org/show_bug.cgi?id=230883
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Import new tests.
- resources/import-expectations.json:
- web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-counter-style-override.html: Added.
- web-platform-tests/css/css-cascade/layer-font-face-override-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-font-face-override.html: Added.
- web-platform-tests/css/css-cascade/layer-keyframes-override-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-keyframes-override.html: Added.
- web-platform-tests/css/css-cascade/layer-property-override-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-property-override.html: Added.
- web-platform-tests/css/css-cascade/layer-scroll-timeline-override-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-scroll-timeline-override.html: Added.
- web-platform-tests/css/css-cascade/layer-stylesheet-sharing-expected.html: Added.
- web-platform-tests/css/css-cascade/layer-stylesheet-sharing.html: Added.
- web-platform-tests/css/css-cascade/layer-vs-inline-style-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-vs-inline-style.html: Added.
- web-platform-tests/css/css-cascade/parsing/layer.html: Added.
- web-platform-tests/css/css-cascade/parsing/w3c-import.log:
- web-platform-tests/css/css-cascade/presentational-hints-cascade-expected.txt: Added.
- web-platform-tests/css/css-cascade/presentational-hints-cascade.html: Added.
- web-platform-tests/css/css-cascade/w3c-import.log:
- web-platform-tests/css/support/parsing-testcommon.js:
- web-platform-tests/fonts/OWNERS: Removed.
- web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Removed.
- web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Removed.
- web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Removed.
- web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Removed.
- web-platform-tests/fonts/math/stack-axisheight7000.woff: Removed.
- web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Removed.
- web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff: Removed.
- web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff: Removed.
- web-platform-tests/fonts/math/stack-topshiftup9000.woff: Removed.
- web-platform-tests/fonts/noto/NotoNaskhArabic-regular.woff2: Added.
- web-platform-tests/fonts/noto/NotoSansAdlam-hinted/LICENSE_OFL.txt: Added.
- web-platform-tests/fonts/noto/NotoSansAdlam-hinted/NotoSansAdlam-Regular.ttf: Added.
- web-platform-tests/fonts/noto/NotoSansAdlam-hinted/README: Added.
- web-platform-tests/fonts/noto/NotoSansAdlam-hinted/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/parsing/w3c-import.log.
- web-platform-tests/fonts/noto/NotoSansCypriot-hinted/LICENSE_OFL.txt: Added.
- web-platform-tests/fonts/noto/NotoSansCypriot-hinted/NotoSansCypriot-Regular.ttf: Added.
- web-platform-tests/fonts/noto/NotoSansCypriot-hinted/README: Added.
- web-platform-tests/fonts/noto/NotoSansCypriot-hinted/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/parsing/w3c-import.log.
- web-platform-tests/fonts/noto/NotoSansDeseret-Regular.ttf: Added.
- web-platform-tests/fonts/noto/NotoSansMongolian-regular.woff2: Added.
- web-platform-tests/fonts/noto/NotoSansNko-regular-webfont.woff2: Added.
- web-platform-tests/fonts/noto/noto-sans-v8-latin-regular.woff: Added.
- web-platform-tests/fonts/noto/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/parsing/w3c-import.log.
LayoutTests:
- 2:49 AM Changeset in webkit [283161] by
-
- 17 edits1 copy5 adds in trunk
[WTF] Add ApproximateTime
https://bugs.webkit.org/show_bug.cgi?id=230876
Reviewed by Filip Pizlo.
JSTests:
- microbenchmarks/approximate-time-now.js: Added.
- microbenchmarks/monotonic-time-now.js: Added.
- microbenchmarks/wall-time-now.js: Added.
Source/JavaScriptCore:
This patch adds ApproximateTime, which offers monotonically increasing time but with coarse-grained resolution.
ApproximateTime::now() is faster than normal MonotonicTime::now(), so that we can use this when we do not care
about high resolution. For example, in Darwin x64, it is ~4x faster.
Internally, it is using mach_approximate_time() in Darwin, clock_gettime+CLOCK_MONOTONIC_COARSE in Linux, and
clock_gettime+CLOCK_MONOTONIC_FAST in FreeBSD. On the other platforms, we simply use the same source to MonotonicTime.
wall-time-now 102.2614+-0.2449
approximate-time-now 23.2583+-0.4083
monotonic-time-now 88.8518+-2.4106
We would like to use it in some places in JavaScriptCore in a subsequent patch: CodeBlock's creation time, GC time etc.
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/ApproximateTime.cpp: Copied from Source/WTF/wtf/ClockType.cpp.
(WTF::ApproximateTime::approximateWallTime const):
(WTF::ApproximateTime::approximateMonotonicTime const):
(WTF::ApproximateTime::dump const):
- wtf/ApproximateTime.h: Copied from Source/WTF/wtf/MonotonicTime.h.
(WTF::ApproximateTime::MarkableTraits::isEmptyValue):
(WTF::ApproximateTime::MarkableTraits::emptyValue):
(std::isnan):
(std::isinf):
(std::isfinite):
- wtf/CMakeLists.txt:
- wtf/ClockType.cpp:
(WTF::printInternal):
- wtf/ClockType.h:
- wtf/CurrentTime.cpp:
(WTF::MonotonicTime::fromMachAbsoluteTime):
(WTF::MonotonicTime::toMachAbsoluteTime const):
(WTF::ApproximateTime::fromMachApproximateTime):
(WTF::ApproximateTime::toMachApproximateTime const):
(WTF::ApproximateTime::now):
- wtf/MonotonicTime.h:
- wtf/Seconds.cpp:
(WTF::Seconds::operator+ const):
(WTF::Seconds::operator- const):
- wtf/Seconds.h:
- wtf/TimeWithDynamicClockType.cpp:
(WTF::TimeWithDynamicClockType::now):
(WTF::TimeWithDynamicClockType::approximateTime const):
(WTF::TimeWithDynamicClockType::approximateWallTime const):
(WTF::TimeWithDynamicClockType::approximateMonotonicTime const):
- wtf/TimeWithDynamicClockType.h:
- wtf/WallTime.h:
Tools:
- TestWebKitAPI/Tests/WTF/Time.cpp:
(WTF::operator<<):
(TestWebKitAPI::TEST):
- 2:39 AM Changeset in webkit [283160] by
-
- 2 edits in trunk/Source/JavaScriptCore
Tweak isCallable() to early return
truefor InternalFunction instances
https://bugs.webkit.org/show_bug.cgi?id=230869
Reviewed by Yusuke Suzuki.
With this change, isCallable() avoids calling into InternalFunction::getCallData(),
which is concurrency-aware and guaranteed to never return CallData::Type::None.
We have a similar optimization for JSFunction.
- runtime/JSCellInlines.h:
(JSC::JSCell::isCallableWithConcurrency):