[webkit-changes] [288087] trunk
Title: [288087] trunk Revision 288087 Author you...@apple.com Date 2022-01-16 22:44:44 -0800 (Sun, 16 Jan 2022) Log Message Enforce focus check for getUserMedia https://bugs.webkit.org/show_bug.cgi?id=235026 Source/WebCore: Reviewed by Eric Carlson. Add infrastructure to register a callback so that a task is executed when the document is visible. Use this to delay getUserMedia requests until document is visible. The spec currently defines that we should wait for the current document to have focus but this is about to be changed and is not aligned with other browser implementations. The patch also moves some getUserMedia checks earlier so as to respect order provided by the specs. Add a check to validate getDisplayMedia is called on a visible document as the user gesture is now time based. Covered by API test. * Modules/mediastream/MediaDevices.cpp: * Modules/mediastream/UserMediaRequest.cpp: * Modules/mediastream/UserMediaRequest.h: * dom/Document.cpp: * dom/Document.h: * editing/FrameSelection.cpp: Source/WebKit: Reviewed by Eric Carlson. Add setters/getters for the getUserMedia focus settings. * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetGetUserMediaRequiresFocus): (WKPreferencesGetGetUserMediaRequiresFocus): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _getUserMediaRequiresFocus]): (-[WKPreferences _setGetUserMediaRequiresFocus:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * UIProcess/API/glib/WebKitSettings.cpp: (webkitSettingsSetGetUserMediaRequiresFocus): * UIProcess/API/glib/WebKitSettingsPrivate.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseMap): Always add the WindowIsActive flag under xvfb. (webkitWebViewBaseIsFocused): Always consider the view focused when WindowIsActive flag is present under xvfb. Source/WTF: Reviewed by Eric Carlson. * Scripts/Preferences/WebPreferencesInternal.yaml: Tools: Reviewed by Eric Carlson. Disable focus flag for testing to not require to focus the window. * TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (TestWebKitAPI::initializeMediaCaptureConfiguration): (TestWebKitAPI::doCaptureMuteTest): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm: (TestWebKitAPI::initializeMediaCaptureConfiguration): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm: (TestWebKitAPI::initializeMediaCaptureConfiguration): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/UserMedia.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm: (TEST): * TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm: (TestWebKitAPI::GetDisplayMediaTest::SetUp): * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: * TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm: (MediaCaptureDisabledTest::SetUp): * TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm: (MediaCaptureSimulateFailedSandbox::SetUp): * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: (testWebViewUserMediaEnumerateDevicesPermissionCheck): (testWebViewUserMediaPermissionRequests): (testWebViewAudioOnlyUserMediaPermissionRequests): LayoutTests: Reviewed by Eric Carlson. * fast/mediastream/MediaDevices-getUserMedia-expected.txt: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/mediastream/MediaDevices-getUserMedia-expected.txt trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/mediastream/MediaDevices.cpp trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h trunk/Source/WebCore/dom/Document.cpp trunk/Source/WebCore/dom/Document.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitSettingsPrivate.h trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm trunk/Tools/TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm trunk/Tools/TestWebKitAPI/Tests/WebKit/UserMedia.cpp trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm
[webkit-changes] [288086] trunk
Title: [288086] trunk Revision 288086 Author you...@apple.com Date 2022-01-16 22:41:57 -0800 (Sun, 16 Jan 2022) Log Message Queue a task to fire MediaStreamTrack ended event https://bugs.webkit.org/show_bug.cgi?id=235227 Reviewed by Eric Carlson. Source/WebCore: Adding a specific readyState slot to match the spec and queue a task to stop the track instead of firing the event synchronously. Covered by updated test. * Modules/mediastream/MediaStreamTrack.cpp: * Modules/mediastream/MediaStreamTrack.h: LayoutTests: * fast/mediastream/media-stream-track-source-failure.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/mediastream/media-stream-track-source-failure.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h Diff Modified: trunk/LayoutTests/ChangeLog (288085 => 288086) --- trunk/LayoutTests/ChangeLog 2022-01-17 05:18:06 UTC (rev 288085) +++ trunk/LayoutTests/ChangeLog 2022-01-17 06:41:57 UTC (rev 288086) @@ -1,3 +1,12 @@ +2022-01-16 Youenn Fablet + +Queue a task to fire MediaStreamTrack ended event +https://bugs.webkit.org/show_bug.cgi?id=235227 + +Reviewed by Eric Carlson. + +* fast/mediastream/media-stream-track-source-failure.html: + 2022-01-16 Brady Eidson database names leak cross-origin within the same browser session Modified: trunk/LayoutTests/fast/mediastream/media-stream-track-source-failure.html (288085 => 288086) --- trunk/LayoutTests/fast/mediastream/media-stream-track-source-failure.html 2022-01-17 05:18:06 UTC (rev 288085) +++ trunk/LayoutTests/fast/mediastream/media-stream-track-source-failure.html 2022-01-17 06:41:57 UTC (rev 288086) @@ -34,7 +34,10 @@ promise_test((test) => { return new Promise((resolve, reject) => { const mediaState = internals.pageMediaState(); +let trackEndedEventFired = false; track._onended_ = () => { +assert_equals(track.readyState, "ended"); +trackEndedEventFired = true; new Promise((innerResolve, innerReject) => { waitForPageStateChange(10, mediaState, innerResolve, innerReject) }).then((pageMediaState) => { @@ -59,8 +62,13 @@ }) } -if (window.internals) +if (window.internals) { internals.simulateMediaStreamTrackCaptureSourceFailure(track); +assert_equals(track.readyState, "live"); +setTimeout(() => { +assert_true(trackEndedEventFired, "ended"); +}, 0); +} setTimeout(() => reject("Device state did not change in 5 second"), 5000); }); Modified: trunk/Source/WebCore/ChangeLog (288085 => 288086) --- trunk/Source/WebCore/ChangeLog 2022-01-17 05:18:06 UTC (rev 288085) +++ trunk/Source/WebCore/ChangeLog 2022-01-17 06:41:57 UTC (rev 288086) @@ -1,3 +1,16 @@ +2022-01-16 Youenn Fablet + +Queue a task to fire MediaStreamTrack ended event +https://bugs.webkit.org/show_bug.cgi?id=235227 + +Reviewed by Eric Carlson. + +Adding a specific readyState slot to match the spec and queue a task to stop the track instead of firing the event synchronously. +Covered by updated test. + +* Modules/mediastream/MediaStreamTrack.cpp: +* Modules/mediastream/MediaStreamTrack.h: + 2022-01-16 Lauro Moura Fix C++20 build warnings with GCC Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (288085 => 288086) --- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2022-01-17 05:18:06 UTC (rev 288085) +++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2022-01-17 06:41:57 UTC (rev 288086) @@ -203,11 +203,6 @@ return m_muted; } -auto MediaStreamTrack::readyState() const -> State -{ -return ended() ? State::Ended : State::Live; -} - bool MediaStreamTrack::ended() const { return m_ended || m_private->ended(); @@ -220,7 +215,13 @@ ALWAYS_LOG(LOGIDENTIFIER); -return MediaStreamTrack::create(*scriptExecutionContext(), m_private->clone()); +auto clone = MediaStreamTrack::create(*scriptExecutionContext(), m_private->clone()); + +clone->m_readyState = m_readyState; +if (clone->ended() && clone->m_readyState == State::Live) +trackEnded(clone->m_private); + +return clone; } void MediaStreamTrack::stopTrack(StopMode mode) @@ -235,8 +236,10 @@ // An 'ended' event is not posted if m_ended is true when trackEnded is called, so set it now if we are // not supposed to post the event. -if (mode == StopMode::Silently) +if (mode == StopMode::Silently) { m_ended = true; +m_readyState = State::Ended; +
[webkit-changes] [288085] trunk/Source
Title: [288085] trunk/Source Revision 288085 Author lmo...@igalia.com Date 2022-01-16 21:18:06 -0800 (Sun, 16 Jan 2022) Log Message Fix C++20 build warnings with GCC https://bugs.webkit.org/show_bug.cgi?id=235023 Reviewed by Alex Christensen. Mostly related to deprecating operations between enums of different types and not capturing this by default in lambdas. Source/_javascript_Core: * assembler/X86Assembler.h: Casting enums to same type. (JSC::X86Assembler::cmovcc): (JSC::X86Assembler::jccRel32): (JSC::X86Assembler::setccOpcode): * b3/B3CheckSpecial.cpp: Capture this in lambda. (JSC::B3::CheckSpecial::generate): * b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and is_trivial_v * bytecode/AccessCase.cpp: Capture this in lambda. (JSC::AccessCase::generateImpl): * bytecode/CallLinkInfo.cpp: Ditto. (JSC::OptimizingCallLinkInfo::emitDirectFastPath): (JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath): (JSC::OptimizingCallLinkInfo::initializeDirectCall): * dfg/DFGSpeculativeJIT.cpp: Ditto. * dfg/DFGSpeculativeJIT64.cpp: Ditto. (JSC::DFG::SpeculativeJIT::compile): * jit/ICStats.h: Cast enums to same type. (JSC::ICEvent::hash const): * jit/JITArithmetic.cpp: Capture this in lambda. (JSC::JIT::emitMathICSlow): * jit/JITSizeStatistics.cpp: Ditto. (JSC::JITSizeStatistics::markEnd): * runtime/VM.cpp: Ditto. (JSC::VM::deleteAllLinkedCode): (JSC::VM::deleteAllCode): (JSC::VM::shrinkFootprintWhenIdle): * wasm/WasmAirIRGenerator.cpp: Ditto. (JSC::Wasm::AirIRGenerator::AirIRGenerator): (JSC::Wasm::AirIRGenerator::addTableGet): (JSC::Wasm::AirIRGenerator::addTableSet): (JSC::Wasm::AirIRGenerator::addTableInit): (JSC::Wasm::AirIRGenerator::addTableFill): (JSC::Wasm::AirIRGenerator::addTableCopy): (JSC::Wasm::AirIRGenerator::addMemoryFill): (JSC::Wasm::AirIRGenerator::addMemoryCopy): (JSC::Wasm::AirIRGenerator::addMemoryInit): (JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer): (JSC::Wasm::AirIRGenerator::emitAtomicLoadOp): (JSC::Wasm::AirIRGenerator::emitAtomicStoreOp): (JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp): (JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange): (JSC::Wasm::AirIRGenerator::atomicWait): (JSC::Wasm::AirIRGenerator::atomicNotify): (JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck): (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck): (JSC::Wasm::AirIRGenerator::addCallIndirect): (JSC::Wasm::AirIRGenerator::addCallRef): (JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): (JSC::Wasm::AirIRGenerator::addOp): * wasm/WasmB3IRGenerator.cpp: Ditto. (JSC::Wasm::B3IRGenerator::B3IRGenerator): (JSC::Wasm::B3IRGenerator::addTableGet): (JSC::Wasm::B3IRGenerator::addTableSet): (JSC::Wasm::B3IRGenerator::addTableInit): (JSC::Wasm::B3IRGenerator::addTableFill): (JSC::Wasm::B3IRGenerator::addTableCopy): (JSC::Wasm::B3IRGenerator::emitIndirectCall): (JSC::Wasm::B3IRGenerator::addMemoryFill): (JSC::Wasm::B3IRGenerator::addMemoryInit): (JSC::Wasm::B3IRGenerator::addMemoryCopy): (JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps): (JSC::Wasm::B3IRGenerator::atomicWait): (JSC::Wasm::B3IRGenerator::atomicNotify): (JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck): (JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck): (JSC::Wasm::B3IRGenerator::addCall): (JSC::Wasm::B3IRGenerator::addCallIndirect): (JSC::Wasm::B3IRGenerator::addCallRef): (JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): (JSC::Wasm::B3IRGenerator::addOp): * yarr/YarrJIT.cpp: Ditto. Source/WebCore: * dom/ViewportArguments.h: Replace enum with constexpr ints as they're compared to doubles in various places through ViewportArguments.cpp. * dom/WheelEvent.h: Replace single-valued enum with constexpr variable. * platform/animation/Animation.h: Ditto. * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Ditto. (WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const): * rendering/style/RenderStyleConstants.h: Merge two enums that are used only in the context of being combined to form a third enum. Source/WebKit: * WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas. (WebKit::WebInspector::showConsole): (WebKit::WebInspector::showResources): (WebKit::WebInspector::showMainResourceForFrame): (WebKit::WebInspector::startPageProfiling): (WebKit::WebInspector::stopPageProfiling): (WebKit::WebInspector::startElementSelection): (WebKit::WebInspector::stopElementSelection): Source/WTF: * wtf/AutomaticThread.cpp: Capture this in lambda. (WTF::AutomaticThread::start): Modified Paths
[webkit-changes] [288084] tags/Safari-612.4.9.0.3/
Title: [288084] tags/Safari-612.4.9.0.3/ Revision 288084 Author bshaf...@apple.com Date 2022-01-16 19:56:40 -0800 (Sun, 16 Jan 2022) Log Message Tag Safari-612.4.9.0.3. Added Paths tags/Safari-612.4.9.0.3/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288083] tags/Safari-612.4.9.1.5/
Title: [288083] tags/Safari-612.4.9.1.5/ Revision 288083 Author bshaf...@apple.com Date 2022-01-16 19:54:47 -0800 (Sun, 16 Jan 2022) Log Message Tag Safari-612.4.9.1.5. Added Paths tags/Safari-612.4.9.1.5/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288082] branches/safari-612.4.9.0-branch
Title: [288082] branches/safari-612.4.9.0-branch Revision 288082 Author bshaf...@apple.com Date 2022-01-16 19:49:56 -0800 (Sun, 16 Jan 2022) Log Message Cherry-pick r288078. rdar://problem/85801310 database names leak cross-origin within the same browser session https://bugs.webkit.org/show_bug.cgi?id=233548 Reviewed by Geoff Garen. Source/WebCore: Test: http/tests/security/getdatabases-crossorigin.html * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match. * page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const): LayoutTests: * http/tests/security/getdatabases-crossorigin-expected.txt: Added. * http/tests/security/getdatabases-crossorigin.html: Added. * http/tests/security/resources/getdatabases-otherframe.html: Added. * http/tests/security/resources/getdatabases-otherwindow.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-612.4.9.0-branch/LayoutTests/ChangeLog branches/safari-612.4.9.0-branch/Source/WebCore/ChangeLog branches/safari-612.4.9.0-branch/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp branches/safari-612.4.9.0-branch/Source/WebCore/page/ClientOrigin.h Added Paths branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html Diff Modified: branches/safari-612.4.9.0-branch/LayoutTests/ChangeLog (288081 => 288082) --- branches/safari-612.4.9.0-branch/LayoutTests/ChangeLog 2022-01-17 03:46:57 UTC (rev 288081) +++ branches/safari-612.4.9.0-branch/LayoutTests/ChangeLog 2022-01-17 03:49:56 UTC (rev 288082) @@ -1,3 +1,45 @@ +2022-01-16 Russell Epstein + +Cherry-pick r288078. rdar://problem/85801310 + +database names leak cross-origin within the same browser session +https://bugs.webkit.org/show_bug.cgi?id=233548 + +Reviewed by Geoff Garen. + +Source/WebCore: + +Test: http/tests/security/getdatabases-crossorigin.html + +* Modules/indexeddb/server/IDBServer.cpp: +(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open + UniqueIDBDatabases, only add them to the results list if their origins match. + +* page/ClientOrigin.h: +(WebCore::ClientOrigin::operator!= const): + +LayoutTests: + +* http/tests/security/getdatabases-crossorigin-expected.txt: Added. +* http/tests/security/getdatabases-crossorigin.html: Added. +* http/tests/security/resources/getdatabases-otherframe.html: Added. +* http/tests/security/resources/getdatabases-otherwindow.html: Added. + + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2022-01-16 Brady Eidson + +database names leak cross-origin within the same browser session +https://bugs.webkit.org/show_bug.cgi?id=233548 + +Reviewed by Geoff Garen. + +* http/tests/security/getdatabases-crossorigin-expected.txt: Added. +* http/tests/security/getdatabases-crossorigin.html: Added. +* http/tests/security/resources/getdatabases-otherframe.html: Added. +* http/tests/security/resources/getdatabases-otherwindow.html: Added. + 2022-01-07 Russell Epstein Cherry-pick r286094. rdar://problem/87125111 Added: branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (0 => 288082) --- branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (rev 0) +++ branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt 2022-01-17 03:49:56 UTC (rev 288082) @@ -0,0 +1,4 @@ +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: PASS + Added: branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html (0 => 288082) --- branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html (rev 0) +++ branches/safari-612.4.9.0-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html 2022-01-17 03:49:56 UTC (rev 288082) @@ -0,0 +1,43 @@ + + + + + +if (window.location.hostname == "localhost") +console.log("FAIL: Must be run as 127.0.0.1, not localhost"); + +if
[webkit-changes] [288081] branches/safari-612.4.9.1-branch
Title: [288081] branches/safari-612.4.9.1-branch Revision 288081 Author bshaf...@apple.com Date 2022-01-16 19:46:57 -0800 (Sun, 16 Jan 2022) Log Message Cherry-pick r288078. rdar://problem/85801310 database names leak cross-origin within the same browser session https://bugs.webkit.org/show_bug.cgi?id=233548 Reviewed by Geoff Garen. Source/WebCore: Test: http/tests/security/getdatabases-crossorigin.html * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match. * page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const): LayoutTests: * http/tests/security/getdatabases-crossorigin-expected.txt: Added. * http/tests/security/getdatabases-crossorigin.html: Added. * http/tests/security/resources/getdatabases-otherframe.html: Added. * http/tests/security/resources/getdatabases-otherwindow.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-612.4.9.1-branch/LayoutTests/ChangeLog branches/safari-612.4.9.1-branch/Source/WebCore/ChangeLog branches/safari-612.4.9.1-branch/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp branches/safari-612.4.9.1-branch/Source/WebCore/page/ClientOrigin.h Added Paths branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html Diff Modified: branches/safari-612.4.9.1-branch/LayoutTests/ChangeLog (288080 => 288081) --- branches/safari-612.4.9.1-branch/LayoutTests/ChangeLog 2022-01-17 03:41:20 UTC (rev 288080) +++ branches/safari-612.4.9.1-branch/LayoutTests/ChangeLog 2022-01-17 03:46:57 UTC (rev 288081) @@ -1,3 +1,45 @@ +2022-01-16 Russell Epstein + +Cherry-pick r288078. rdar://problem/85801310 + +database names leak cross-origin within the same browser session +https://bugs.webkit.org/show_bug.cgi?id=233548 + +Reviewed by Geoff Garen. + +Source/WebCore: + +Test: http/tests/security/getdatabases-crossorigin.html + +* Modules/indexeddb/server/IDBServer.cpp: +(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open + UniqueIDBDatabases, only add them to the results list if their origins match. + +* page/ClientOrigin.h: +(WebCore::ClientOrigin::operator!= const): + +LayoutTests: + +* http/tests/security/getdatabases-crossorigin-expected.txt: Added. +* http/tests/security/getdatabases-crossorigin.html: Added. +* http/tests/security/resources/getdatabases-otherframe.html: Added. +* http/tests/security/resources/getdatabases-otherwindow.html: Added. + + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2022-01-16 Brady Eidson + +database names leak cross-origin within the same browser session +https://bugs.webkit.org/show_bug.cgi?id=233548 + +Reviewed by Geoff Garen. + +* http/tests/security/getdatabases-crossorigin-expected.txt: Added. +* http/tests/security/getdatabases-crossorigin.html: Added. +* http/tests/security/resources/getdatabases-otherframe.html: Added. +* http/tests/security/resources/getdatabases-otherwindow.html: Added. + 2022-01-07 Russell Epstein Cherry-pick r286094. rdar://problem/87125111 Added: branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (0 => 288081) --- branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (rev 0) +++ branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt 2022-01-17 03:46:57 UTC (rev 288081) @@ -0,0 +1,4 @@ +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: PASS + Added: branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html (0 => 288081) --- branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html (rev 0) +++ branches/safari-612.4.9.1-branch/LayoutTests/http/tests/security/getdatabases-crossorigin.html 2022-01-17 03:46:57 UTC (rev 288081) @@ -0,0 +1,43 @@ + + + + + +if (window.location.hostname == "localhost") +console.log("FAIL: Must be run as 127.0.0.1, not localhost"); + +if
[webkit-changes] [288080] branches/safari-612.4.9.1-branch/Source
Title: [288080] branches/safari-612.4.9.1-branch/Source Revision 288080 Author bshaf...@apple.com Date 2022-01-16 19:41:20 -0800 (Sun, 16 Jan 2022) Log Message Versioning. WebKit-7612.4.9.1.5 Modified Paths branches/safari-612.4.9.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-612.4.9.1-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-612.4.9.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.1-branch/Source/WebCore/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/WebCore/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/WebCore/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (288079 => 288080) --- branches/safari-612.4.9.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) +++ branches/safari-612.4.9.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-01-17 03:41:20 UTC (rev 288080) @@ -2,7 +2,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 1; -NANO_VERSION = 4; +NANO_VERSION = 5; FULL_VERSION =
[webkit-changes] [288079] branches/safari-612.4.9.0-branch/Source
Title: [288079] branches/safari-612.4.9.0-branch/Source Revision 288079 Author bshaf...@apple.com Date 2022-01-16 19:36:58 -0800 (Sun, 16 Jan 2022) Log Message Versioning. WebKit-7612.4.9.0.3 Modified Paths branches/safari-612.4.9.0-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-612.4.9.0-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-612.4.9.0-branch/Source/_javascript_Core/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.0-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.0-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.0-branch/Source/WebCore/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/WebCore/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/WebCore/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.0-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -25,7 +25,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-612.4.9.0-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (288078 => 288079) --- branches/safari-612.4.9.0-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-01-17 03:35:16 UTC (rev 288078) +++ branches/safari-612.4.9.0-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2022-01-17 03:36:58 UTC (rev 288079) @@ -2,7 +2,7 @@ MINOR_VERSION = 4; TINY_VERSION = 9; MICRO_VERSION = 0; -NANO_VERSION = 2; +NANO_VERSION = 3; FULL_VERSION =
[webkit-changes] [288078] trunk
Title: [288078] trunk Revision 288078 Author beid...@apple.com Date 2022-01-16 19:35:16 -0800 (Sun, 16 Jan 2022) Log Message database names leak cross-origin within the same browser session https://bugs.webkit.org/show_bug.cgi?id=233548 Reviewed by Geoff Garen. Source/WebCore: Test: http/tests/security/getdatabases-crossorigin.html * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match. * page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const): LayoutTests: * http/tests/security/getdatabases-crossorigin-expected.txt: Added. * http/tests/security/getdatabases-crossorigin.html: Added. * http/tests/security/resources/getdatabases-otherframe.html: Added. * http/tests/security/resources/getdatabases-otherwindow.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp trunk/Source/WebCore/page/ClientOrigin.h Added Paths trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html Diff Modified: trunk/LayoutTests/ChangeLog (288077 => 288078) --- trunk/LayoutTests/ChangeLog 2022-01-17 01:04:56 UTC (rev 288077) +++ trunk/LayoutTests/ChangeLog 2022-01-17 03:35:16 UTC (rev 288078) @@ -1,3 +1,15 @@ +2022-01-16 Brady Eidson + +database names leak cross-origin within the same browser session +https://bugs.webkit.org/show_bug.cgi?id=233548 + +Reviewed by Geoff Garen. + +* http/tests/security/getdatabases-crossorigin-expected.txt: Added. +* http/tests/security/getdatabases-crossorigin.html: Added. +* http/tests/security/resources/getdatabases-otherframe.html: Added. +* http/tests/security/resources/getdatabases-otherwindow.html: Added. + 2022-01-16 Fujii Hironori [WinCairo] Unreviewed test gardening Added: trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (0 => 288078) --- trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt (rev 0) +++ trunk/LayoutTests/http/tests/security/getdatabases-crossorigin-expected.txt 2022-01-17 03:35:16 UTC (rev 288078) @@ -0,0 +1,4 @@ +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: Message received from other context +CONSOLE MESSAGE: PASS + Added: trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html (0 => 288078) --- trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html (rev 0) +++ trunk/LayoutTests/http/tests/security/getdatabases-crossorigin.html 2022-01-17 03:35:16 UTC (rev 288078) @@ -0,0 +1,43 @@ + + + + + +if (window.location.hostname == "localhost") +console.log("FAIL: Must be run as 127.0.0.1, not localhost"); + +if (window.testRunner) { +testRunner.dumpAsText(); +testRunner.waitUntilDone(); +} + +var messagesReceived = 0; + +window._onmessage_ = function(event) { +console.log("Message received from other context") + +if (++messagesReceived < 2) +return; + +indexedDB.databases().then((result) => { +databases = result; +if (databases.length != 0) +console.log("FAIL: There are " + databases.length + " database(s) when there should be 0"); +else +console.log("PASS"); +if (testRunner) +testRunner.notifyDone(); +}); +}; + +function openOtherWindow() +{ +window.open("http://localhost:8000/security/resources/getdatabases-otherwindow.html") +} + + + + + + \ No newline at end of file Added: trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html (0 => 288078) --- trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html (rev 0) +++ trunk/LayoutTests/http/tests/security/resources/getdatabases-otherframe.html 2022-01-17 03:35:16 UTC (rev 288078) @@ -0,0 +1,9 @@ + + +indexedDB.deleteDatabase('getdatabase-otherframe')._onsuccess_ = () => { +indexedDB.open('getdatabase-otherframe')._onsuccess_ = () => { +window.parent.postMessage("Hi there!", "*"); +} +} + + Added: trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html (0 => 288078) --- trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html (rev 0) +++ trunk/LayoutTests/http/tests/security/resources/getdatabases-otherwindow.html 2022-01-17 03:35:16 UTC (rev 288078) @@ -0,0 +1,9 @@ + + +indexedDB.deleteDatabase('getdatabase-otherwindow')._onsuccess_ = () => { +indexedDB.open('getdatabase-otherwindow')._onsuccess_ = () => { +
[webkit-changes] [288077] trunk/Source/WebCore
Title: [288077] trunk/Source/WebCore Revision 288077 Author mmaxfi...@apple.com Date 2022-01-16 17:04:56 -0800 (Sun, 16 Jan 2022) Log Message [Win] Use character names instead of codepoint values in overrideControlCharacters() https://bugs.webkit.org/show_bug.cgi?id=235283 Reviewed by Cameron McCormack. It's simply easier to read. No new tests because there is no behavior change. * platform/graphics/Font.cpp: (WebCore::overrideControlCharacters): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/Font.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (288076 => 288077) --- trunk/Source/WebCore/ChangeLog 2022-01-16 22:10:02 UTC (rev 288076) +++ trunk/Source/WebCore/ChangeLog 2022-01-17 01:04:56 UTC (rev 288077) @@ -1,3 +1,17 @@ +2022-01-16 Myles C. Maxfield + +[Win] Use character names instead of codepoint values in overrideControlCharacters() +https://bugs.webkit.org/show_bug.cgi?id=235283 + +Reviewed by Cameron McCormack. + +It's simply easier to read. + +No new tests because there is no behavior change. + +* platform/graphics/Font.cpp: +(WebCore::overrideControlCharacters): + 2022-01-16 Cameron McCormack Ensure in flight layer transactions don't accumulate further canvas drawing Modified: trunk/Source/WebCore/platform/graphics/Font.cpp (288076 => 288077) --- trunk/Source/WebCore/platform/graphics/Font.cpp 2022-01-16 22:10:02 UTC (rev 288076) +++ trunk/Source/WebCore/platform/graphics/Font.cpp 2022-01-17 01:04:56 UTC (rev 288077) @@ -333,11 +333,11 @@ }; // Code points 0x0 - 0x20 and 0x7F - 0xA0 are control character and shouldn't render. Map them to ZERO WIDTH SPACE. -overwriteCodePoints(0x0, 0x20, zeroWidthSpace); -overwriteCodePoints(0x7F, 0xA0, zeroWidthSpace); +overwriteCodePoints(nullCharacter, space, zeroWidthSpace); +overwriteCodePoints(deleteCharacter, noBreakSpace, zeroWidthSpace); overwriteCodePoint(softHyphen, zeroWidthSpace); -overwriteCodePoint('\n', space); -overwriteCodePoint('\t', space); +overwriteCodePoint(newlineCharacter, space); +overwriteCodePoint(tabCharacter, space); overwriteCodePoint(noBreakSpace, space); overwriteCodePoint(leftToRightMark, zeroWidthSpace); overwriteCodePoint(rightToLeftMark, zeroWidthSpace); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288076] trunk/Source
Title: [288076] trunk/Source Revision 288076 Author hey...@apple.com Date 2022-01-16 14:10:02 -0800 (Sun, 16 Jan 2022) Log Message Ensure in flight layer transactions don't accumulate further canvas drawing https://bugs.webkit.org/show_bug.cgi?id=231163 Reviewed by Simon Fraser. Source/WebCore: When UI side compositing is enabled (as it is on iOS), we build a layer tree transaction in RemoteLayerTreeDrawingArea::updateRendering to send off to the UI process. At a high level, updateRendering does this: 1. Run any requestAnimationFrame callbacks 2. Iterate over the composited layers to draw their contents into the layer backing stores 3. Dispatch a task to a different thread to flush the contexts of the layer backing stores and then send the transaction to the UI process Step 3 is done off a separate task as an optimization, to get the drawing work queued up by step 2 happening in parallel to any work the page may day once updateRendering is finished. This can be a problem when: - GPU process canvas rendering is enabled (but DOM rendering is disabled) - we have accelerated ImageBuffers for both layer backing stores and canvas backing stores - the page does canvas drawing between steps 2 and 3, which affects the contents of a canvas backing store IOSurface that was drawn into a layer backing store IOSurface while building the transaction The way we draw the canvas contents into the layer is by creating a CGImage from the canvas backing store ImageBuffer's IOSurface. Normally, if we draw into an IOSurface that has been wrapped by a CGImage, this will cause the CGImage to obtain a unique copy of the IOSurface's pixels, rather than continue holding on to the IOSurface itself. When the drawing of this CGImage on to the layer backing store IOSurface happens, the "draw image" command is queued up to be processed later. It's only when the flush happens in step 3 above that the drawing occurs. This means that the CGImage wrapping the IOSurface exists until that flush. But while the CGImage does exist, it's in the Web process, and the canvas drawing on to the same IOSurface happens in the GPU process. Since QuartzCore doesn't know of its existence, it doesn't cause the copy-on-write to occur. The effect of this is that subsequent page drawing on to the canvas can make its way into the layer transaction unexpectedly. This patch induces the copy-on-write in the Web process when needed, by tracking whether a canvas has been drawn into a layer backing store and the layer transaction flush hasn't happened yet. Just before we do any more drawing on the canvas, if we are in this state, we perform a no-op drawing command on the IOSurface, then flush, to make the CGImage copy the IOSurface data out. * html/HTMLCanvasElement.cpp: (WebCore::imageDrawingRequiresGuardAgainstUseByPendingLayerTransaction): We only need to induce the CGImage copy-on-write behavior if both the layer and canvas backing stores are accelerated, the canvas ImageBuffer is remote, and the layer ImageBuffer is not remote. (WebCore::HTMLCanvasElement::paint): (WebCore::HTMLCanvasElement::drawingContext const): Use drawingContext as a convenient single place to check whether we are performing the first drawing command before the layer tree transaction flush has happened. * html/HTMLCanvasElement.h: * page/Page.h: (WebCore::Page::setIsAwaitingLayerTreeTransactionFlush): (WebCore::Page::isAwaitingLayerTreeTransactionFlush const): * platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::ensureNativeImagesHaveCopiedBackingStore): * platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: (WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore): The flush is needed since the CGImage wrapping the IOSurface will only copy the pixel data out once the no-op drawing command is processed. * platform/graphics/cg/ImageBufferIOSurfaceBackend.h: Source/WebKit: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willCommitLayerTree): (WebKit::WebPage::didFlushLayerTreeAtTime): Inform the WebCore::Page about the state of the layer tree transaction building. * WebProcess/WebPage/WebPage.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLCanvasElement.cpp trunk/Source/WebCore/html/HTMLCanvasElement.h trunk/Source/WebCore/page/Page.h trunk/Source/WebCore/platform/graphics/ImageBufferBackend.h trunk/Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp trunk/Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (288075 => 288076) --- trunk/Source/WebCore/ChangeLog 2022-01-16 21:44:55 UTC (rev 288075) +++ trunk/Source/WebCore/ChangeLog 2022-01-16 22:10:02 UTC (rev 288076) @@ -1,3 +1,84 @@ +2022-01-16 Cameron McCormack + +Ensure in flight layer transactions don't accumulate further canvas drawing +
[webkit-changes] [288075] trunk/Source/WTF
Title: [288075] trunk/Source/WTF Revision 288075 Author ddkil...@apple.com Date 2022-01-16 13:44:55 -0800 (Sun, 16 Jan 2022) Log Message [WTF] Add TollFreeBridging.h to Xcode project Unreviewed follow-up for r284038: Switch WTF::bridge_cast to use type traits * WTF.xcodeproj/project.pbxproj: - Add TollFreeBridging.h to the project. Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/WTF.xcodeproj/project.pbxproj Diff Modified: trunk/Source/WTF/ChangeLog (288074 => 288075) --- trunk/Source/WTF/ChangeLog 2022-01-16 21:34:17 UTC (rev 288074) +++ trunk/Source/WTF/ChangeLog 2022-01-16 21:44:55 UTC (rev 288075) @@ -1,3 +1,16 @@ +2022-01-16 David Kilzer + +[WTF] Add TollFreeBridging.h to Xcode project + +Unreviewed follow-up for r284038: + + Switch WTF::bridge_cast to use type traits + + + +* WTF.xcodeproj/project.pbxproj: +- Add TollFreeBridging.h to the project. + 2022-01-15 Chris Dumez Introduce dynamicDowncast<>() for convenience Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (288074 => 288075) --- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2022-01-16 21:34:17 UTC (rev 288074) +++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2022-01-16 21:44:55 UTC (rev 288075) @@ -406,6 +406,7 @@ 430B47871C1A001223DA /* StringCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringCommon.h; sourceTree = ""; }; 4427C5A921F6D6C300A612A4 /* ASCIICType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASCIICType.cpp; sourceTree = ""; }; 44309D4026EFC14A00402A67 /* NSObjCRuntimeSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSObjCRuntimeSPI.h; sourceTree = ""; }; + 4434F91B27948A65007E3E8A /* TollFreeBridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TollFreeBridging.h; sourceTree = ""; }; 4468567225094FE8008CCA05 /* ThreadSanitizerSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadSanitizerSupport.h; sourceTree = ""; }; 44CDE4D226EE6CDA009F6ACB /* TypeCastsCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCastsCocoa.h; sourceTree = ""; }; 46209A27266D543A007F8F4A /* CancellableTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CancellableTask.h; sourceTree = ""; }; @@ -1659,6 +1660,7 @@ A30D412C1F0DE0BA00B71954 /* SoftLinking.h */, BC3FEB5E267FCD460054006A /* SpanCocoa.h */, EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */, +4434F91B27948A65007E3E8A /* TollFreeBridging.h */, 44CDE4D226EE6CDA009F6ACB /* TypeCastsCocoa.h */, 5CC0EE862162BC2200A1A842 /* URLCocoa.mm */, 93241657243BC2E50032FAAE /* VectorCocoa.h */, ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288074] trunk/Source/ThirdParty/ANGLE
Title: [288074] trunk/Source/ThirdParty/ANGLE Revision 288074 Author ddkil...@apple.com Date 2022-01-16 13:34:17 -0800 (Sun, 16 Jan 2022) Log Message REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called Reviewed by Darin Adler. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute): - Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns. Modified Paths trunk/Source/ThirdParty/ANGLE/ChangeLog trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm Diff Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (288073 => 288074) --- trunk/Source/ThirdParty/ANGLE/ChangeLog 2022-01-16 20:51:53 UTC (rev 288073) +++ trunk/Source/ThirdParty/ANGLE/ChangeLog 2022-01-16 21:34:17 UTC (rev 288074) @@ -1,3 +1,16 @@ +2022-01-16 David Kilzer + +REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called + + + +Reviewed by Darin Adler. + +* src/libANGLE/renderer/metal/DisplayMtl.mm: +(rx::DisplayMtl::getMetalDeviceMatchingAttribute): +- Make use of mtl::adoptObjCObj<> so these objects are relaseed + when the method returns. + 2022-01-14 Kyle Piddington ANGLE: Supports32BitFloatFiltering is not supported on TVOS Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm (288073 => 288074) --- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2022-01-16 20:51:53 UTC (rev 288073) +++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2022-01-16 21:34:17 UTC (rev 288074) @@ -238,22 +238,22 @@ #if defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_MACCATALYST) auto deviceList = mtl::adoptObjCObj(MTLCopyAllDevices()); -NSMutableArray> *externalGPUs = [[NSMutableArray alloc] init]; -NSMutableArray> *integratedGPUs = [[NSMutableArray alloc] init]; -NSMutableArray> *discreteGPUs = [[NSMutableArray alloc] init]; +auto externalGPUs = mtl::adoptObjCObj>>([[NSMutableArray alloc] init]); +auto integratedGPUs = mtl::adoptObjCObj>>([[NSMutableArray alloc] init]); +auto discreteGPUs = mtl::adoptObjCObj>>([[NSMutableArray alloc] init]); for (id device in deviceList.get()) { if (device.removable) { -[externalGPUs addObject:device]; +[externalGPUs.get() addObject:device]; } else if (device.lowPower) { -[integratedGPUs addObject:device]; +[integratedGPUs.get() addObject:device]; } else { -[discreteGPUs addObject:device]; +[discreteGPUs.get() addObject:device]; } } // TODO(kpiddington: External GPU support. Do we prefer high power / low bandwidth for general @@ -262,7 +262,7 @@ if (attribs.get(EGL_POWER_PREFERENCE_ANGLE, 0) == EGL_HIGH_POWER_ANGLE) { // Search for a discrete GPU first. -for (id device in discreteGPUs) +for (id device in discreteGPUs.get()) { if (![device isHeadless]) return device; @@ -271,7 +271,7 @@ else if (attribs.get(EGL_POWER_PREFERENCE_ANGLE, 0) == EGL_LOW_POWER_ANGLE) { // If we've selected a low power device, look through integrated devices. -for (id device in integratedGPUs) +for (id device in integratedGPUs.get()) { if (![device isHeadless]) return device; @@ -295,7 +295,7 @@ } // Default to use a low power device, look through integrated devices. -for (id device in integratedGPUs) +for (id device in integratedGPUs.get()) { if (![device isHeadless]) return device; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288073] trunk/LayoutTests
Title: [288073] trunk/LayoutTests Revision 288073 Author hironori.fu...@sony.com Date 2022-01-16 12:51:53 -0800 (Sun, 16 Jan 2022) Log Message [WinCairo] Unreviewed test gardening After r288052 added editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html, WinCairo WK1 tests subsequent to the test case had been failing. It looked like DRT output the result of the privous test case. * platform/wincairo-wk1/TestExpectations: Skip the test case as well as AppleWin does. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wincairo-wk1/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (288072 => 288073) --- trunk/LayoutTests/ChangeLog 2022-01-16 09:08:43 UTC (rev 288072) +++ trunk/LayoutTests/ChangeLog 2022-01-16 20:51:53 UTC (rev 288073) @@ -1,3 +1,13 @@ +2022-01-16 Fujii Hironori + +[WinCairo] Unreviewed test gardening + +After r288052 added editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html, +WinCairo WK1 tests subsequent to the test case had been failing. +It looked like DRT output the result of the privous test case. + +* platform/wincairo-wk1/TestExpectations: Skip the test case as well as AppleWin does. + 2022-01-15 Sam Weinig CSS Gradients: interpolation mode should default to OKLab if any non-legacy color syntax colors are used in the stops Modified: trunk/LayoutTests/platform/wincairo-wk1/TestExpectations (288072 => 288073) --- trunk/LayoutTests/platform/wincairo-wk1/TestExpectations 2022-01-16 09:08:43 UTC (rev 288072) +++ trunk/LayoutTests/platform/wincairo-wk1/TestExpectations 2022-01-16 20:51:53 UTC (rev 288073) @@ -459,3 +459,5 @@ accessibility/aria-roledescription.html [ Timeout ] accessibility/visible-elements.html [ Timeout ] + +editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html [ Skip ] # This test confuses DRT. See Bug 233463 ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [288072] trunk/Tools/buildstream
Title: [288072] trunk/Tools/buildstream Revision 288072 Author changs...@webkit.org Date 2022-01-16 01:08:43 -0800 (Sun, 16 Jan 2022) Log Message [Flatpak SDK] local build is broken https://bugs.webkit.org/show_bug.cgi?id=235265 Reviewed by Philippe Normand. The local build of Flatpak SDK is broken due to a missing reference to the freedesktop sdk. This change updates the reference. * elements/freedesktop-sdk.bst: Modified Paths trunk/Tools/buildstream/ChangeLog trunk/Tools/buildstream/elements/freedesktop-sdk.bst Diff Modified: trunk/Tools/buildstream/ChangeLog (288071 => 288072) --- trunk/Tools/buildstream/ChangeLog 2022-01-16 06:22:42 UTC (rev 288071) +++ trunk/Tools/buildstream/ChangeLog 2022-01-16 09:08:43 UTC (rev 288072) @@ -1,3 +1,15 @@ +2022-01-16 ChangSeok Oh + +[Flatpak SDK] local build is broken +https://bugs.webkit.org/show_bug.cgi?id=235265 + +Reviewed by Philippe Normand. + +The local build of Flatpak SDK is broken due to a missing reference to the freedesktop sdk. +This change updates the reference. + +* elements/freedesktop-sdk.bst: + 2021-11-30 Philippe Normand [Flatpak SDK] Update to FDO 21.08.6 release Modified: trunk/Tools/buildstream/elements/freedesktop-sdk.bst (288071 => 288072) --- trunk/Tools/buildstream/elements/freedesktop-sdk.bst 2022-01-16 06:22:42 UTC (rev 288071) +++ trunk/Tools/buildstream/elements/freedesktop-sdk.bst 2022-01-16 09:08:43 UTC (rev 288072) @@ -3,7 +3,7 @@ - kind: git_tag url: gitlab_com:freedesktop-sdk/freedesktop-sdk.git track: 'release/21.08' - ref: freedesktop-sdk-21.08.6-13-g6a4b45189f5087bd40f96757b9f970880aa8e5bc + ref: freedesktop-sdk-21.08.9-25-gfb49cd02a3869721e08be44e068979ce98da6da6 config: options: target_arch: '%{arch}' ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes