TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692024-03-21T04:31:37ZTYPO3 Forge
Redmine TYPO3 Core - Bug #103444 (Resolved): YamlFileLoader has no logger instancehttp://forge.typo3.org/issues/1034442024-03-21T04:31:37ZBenjamin Franzkeben@bnf.dev
<p>Uncaught TYPO3 Exception Call to a member function error() on null<br />thrown in file /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Configuration/Loader/YamlFileLoader.php<br />in line 171</p> TYPO3 Core - Bug #103382 (Resolved): Context-Menu placed in invisible area when opened at bottom ...http://forge.typo3.org/issues/1033822024-03-13T09:21:55ZBenjamin Franzkeben@bnf.dev
<p><a class="external" href="https://typo3.slack.com/archives/C03AM9R17/p1710271829140209?thread_ts=1710244943.836959&cid=C03AM9R17">https://typo3.slack.com/archives/C03AM9R17/p1710271829140209?thread_ts=1710244943.836959&cid=C03AM9R17</a><br /><a class="external" href="https://typo3.slack.com/archives/C03AM9R17/p1710244943836959">https://typo3.slack.com/archives/C03AM9R17/p1710244943836959</a></p> TYPO3 Core - Bug #103296 (Resolved): Composer-Mode public resource paths are not correctly resolv...http://forge.typo3.org/issues/1032962024-03-06T10:28:44ZBenjamin Franzkeben@bnf.dev
<pre>
Refused to apply style from 'https://t3core.localhost/Build/composer/public/typo3/main?token=80d4c64f1e289e50651c299d3e3a173d58b7c763' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
</pre>
<p><img src="http://forge.typo3.org/attachments/download/38296/inline-ajax-public-resource-url-wrong-composer-mode.png" alt="" loading="lazy" /></p>
<p>Found via patchset 9 of <a class="external" href="https://review.typo3.org/c/Packages/TYPO3.CMS/+/83027/9">https://review.typo3.org/c/Packages/TYPO3.CMS/+/83027/9</a><br /><a class="external" href="https://git.typo3.org/typo3/CI/cms/-/jobs/3016881">https://git.typo3.org/typo3/CI/cms/-/jobs/3016881</a></p>
<pre>
1) Inline1nCest: Disable an Inline Element which has no checkbox for disabled state
Test Acceptance/Application/FormEngine/Inline1nCest.php:disableInline1nInlineElementWithoutRenderedDisableField
Found following JavaScript errors in the browser console:
18:25:42.44 SEVERE - http://web/typo3/record/edit?token=7f59b97d48ea3fd858f2b2c1bc91542804b38b1e&edit%5Btx_styleguide_inline_1n%5D%5B1%5D=edit&returnUrl=/typo3/module/web/list?token%3De6f62f45187ab9f4523b043b9357378cf58cdf7c%26id%3D127%26table%3D%26pointer%3D1 - Refused to apply style from 'http://web/typo3/main?token=56002678c4b7605eb7a5d9d1760554f92e7bf5d1' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Scenario Steps:
19. $I->click("button span[data...","[data-field-name...") at Acceptance/Application/FormEngine/Inline1nCest.php:172
18. $I->waitForElement("input[data-formengine-input-na...") at Acceptance/Application/FormEngine/Inline1nCest.php:169
17. $I->click("div[data-bs-togg...","[data-field-name...") at Acceptance/Application/FormEngine/Inline1nCest.php:168
16. $I->click("inline_2") at Acceptance/Application/FormEngine/Inline1nCest.php:165
15. $I->waitForText("Edit Form",3,"h1") at Acceptance/Application/FormEngine/Inline1nCest.php:44
14. $I->click("#recordlist-tx_styleguide_inline_1n a[a...") at Acceptance/Application/FormEngine/Inline1nCest.php:43
Artifacts:
Png: /builds/typo3/CI/cms/typo3/sysext/core/Tests/../../../../typo3temp/var/tests/AcceptanceReports/TYPO3.CMS.Core.Tests.Acceptance.Application.FormEngine.Inline1nCest.disableInline1nInlineElementWithoutRenderedDisableField.ci.composer.headless.fail.png
Html: /builds/typo3/CI/cms/typo3/sysext/core/Tests/../../../../typo3temp/var/tests/AcceptanceReports/TYPO3.CMS.Core.Tests.Acceptance.Application.FormEngine.Inline1nCest.disableInline1nInlineElementWithoutRenderedDisableField.ci.composer.headless.fail.html
</pre> TYPO3 Core - Bug #103294 (Resolved): Race condition in DI cache persistencehttp://forge.typo3.org/issues/1032942024-03-06T09:10:49ZBenjamin Franzkeben@bnf.dev
<p>With <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Task: Improve dependency injection container caching (Closed)" href="http://forge.typo3.org/issues/90418">#90418</a> the container cache has been excluded from the<br />regular cache-flush-pipeline.<br />Therefore flushing has been explicitly performed when writing a<br />new cache entry (with the intent to clean up old cache entries).</p>
<p>Issue is: Cleaning up the entire folder by deleting the folder means<br />a concurrent request – that is creating the same DI cache as well –<br />will fail to write the cache when the folder is (re)moved in that<br />moment.</p>
<pre>
In SimpleFileBackend.php line 232:
The temporary cache file "/var/www/html/typo3temp/var/cache/code/di/65e832cba8809119262340.temp" could not be written.
</pre> TYPO3 Core - Bug #103067 (Resolved): TCA password is autofilled when editing a user recordhttp://forge.typo3.org/issues/1030672024-02-07T09:18:25ZBenjamin Franzkeben@bnf.dev
<p><img src="http://forge.typo3.org/attachments/download/38237/tca-password-username-autocomplete.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #102994 (Resolved): typo3 setup throws exception as port is not casted to inthttp://forge.typo3.org/issues/1029942024-01-30T12:33:24ZBenjamin Franzkeben@bnf.dev
<pre>
TYPO3_DB_PORT=3306 \
TYPO3_DB_USERNAME=db \
TYPO3_DB_HOST=db \
TYPO3_DB_DBNAME=db \
TYPO3_DB_PASSWORD=db \
TYPO3_DB_DRIVER=mysqli \
TYPO3_SERVER_TYPE=other \
TYPO3_SETUP_ADMIN_EMAIL=admin@example.com \
TYPO3_SETUP_ADMIN_USERNAME=admin \
TYPO3_SETUP_ADMIN_PASSWORD='Pa$$w0rd' \
TYPO3_SETUP_CREATE_SITE="${DDEV_PRIMARY_URL}/" \
TYPO3_PROJECT_NAME="Test Install" \
vendor/bin/typo3 setup --force
Enter the database "port" [default: 3306] ? 3306
Uncaught TYPO3 Exception mysqli::real_connect(): Argument #5 ($port) must be of type ?int, string given
thrown in file /var/www/html/.build/v13/vendor/doctrine/dbal/src/Driver/Mysqli/Driver.php
in line 44
</pre> TYPO3 Core - Bug #102748 (Resolved): table wizard connected callback is not guaranteed to have ac...http://forge.typo3.org/issues/1027482024-01-04T08:27:29ZBenjamin Franzkeben@bnf.dev
<p>The <code><textarea></code> element is not guaranteed to be available, when it is rendered/delivered after the wizard element.</p> TYPO3 Core - Bug #102676 (Resolved): Sanitize embedded HTML in Installation-Wide Configuration GUIhttp://forge.typo3.org/issues/1026762023-12-15T12:31:09ZBenjamin Franzkeben@bnf.dev
<p>Input data is statically provided by EXT:core only, so there is no<br />security issue known right now. This change is a preparation to avoid<br />possible future security issues.</p> TYPO3 Core - Bug #102603 (Resolved): link-element initialization race conditionhttp://forge.typo3.org/issues/1026032023-12-05T07:55:23ZBenjamin Franzkeben@bnf.dev
<p><img src="http://forge.typo3.org/attachments/download/38151/link-browser-race-condition.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #102550 (Resolved): race condition in value-picker initialization http://forge.typo3.org/issues/1025502023-11-29T08:17:52ZBenjamin Franzkeben@bnf.dev
<p>(Custom) element children are not guaranteed to be available by the time<br />the element is added to the DOM — i.e. when the connectedCallback() is<br />triggered by the browser. That means we can not assume that value-picker<br /><select> children will always be available.</p>
<p>Note that it worked most of the times, because JavaScript modules are<br />loaded asynchronously, and thus "most of the times" execute later after<br />the DOM is rendered, but when the server is really busy, the HTML output<br />can be rendered very late, so that a connectedCallback is triggered<br />immediately when an opening tag is written to the DOM — even before the<br />childrens are attached. (Otherwise the browsers would have to delay the<br />connectedCallback's until the closing tag is rendered, but that's not<br />the case — at least not in google chrome.)</p>
<p>Error:<br /><img src="http://forge.typo3.org/attachments/download/38138/connected-callback-children.png" alt="" loading="lazy" /></p> TYPO3 Core - Bug #102520 (Resolved): UserSessionManager tries to access normalizedParams since 12...http://forge.typo3.org/issues/1025202023-11-27T07:59:44ZBenjamin Franzkeben@bnf.dev
<p>Extensions relied on the fact that `normalizedParams` was not provided until 12.4.7, so they could pass a blunt ServerRequest to <code>BackendUserAuthentication->start()</code></p>
<p>This leads to an exception with EXT:container upgrade wizards, see attachment and following link<br />See also <a class="external" href="https://github.com/b13/container/issues/460">https://github.com/b13/container/issues/460</a></p> TYPO3 Core - Bug #102377 (Resolved): Backend requests are cached (and used) within 1s timeframehttp://forge.typo3.org/issues/1023772023-11-16T05:26:57ZBenjamin Franzkeben@bnf.dev
<p>Backend responses must never be cached. The Cache-Control instruction "must-revalidate" implicitly enables<br />caching in order to possibly reuse a response. While that could only happen when two requests to the same URL are<br />invoked withing one second (because the browsers `If-Modified-Since` header and our `Last-Modified` header<br />do match, causing the webserver to issue a 304 response), that is certainly possible in CI setups or fast user clicks.</p>
<p>Nightly runs (and new CI) caught following CSP errors that happended because a previous request to the same backend URL<br />was tried to be reused.<br />That means the browser sends a `If-Modified-Since` header, the server compares that to our <code>Last-Modified</code> header and because those match for 1s (given times on server and client are equal), the server responds with a 304 response and new CSP headers.</p>
<p>Now, the client uses those new CSP headers on the old (cached) content, causing CSP errors.</p>
<p>Log from a previous nightly: <a class="external" href="https://git.typo3.org/typo3/CI/cms/-/jobs/2719694">https://git.typo3.org/typo3/CI/cms/-/jobs/2719694</a></p>
<pre>
1) TemplateCest: Open the TypoScript Object Browser and search a keyword.
Test Acceptance/Application/Template/TemplateCest.php:searchInTypoScriptActive
Step Use existing session "admin"
Fail Found following JavaScript errors in the browser console:
01:12:43.964 SEVERE - http://web/typo3/index.php 24 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'nonce-q-0rXT6ndm1d4k1PB_skehGuei9NU4RmepZIoI0jaD4t4mptySRwtg' 'report-sample'". Either the 'unsafe-inline' keyword, a hash ('sha256-mOe1j2nA39ZHBa9vuj8vjm6s1j12BoBxmU5pq+c8myY='), or a nonce ('nonce-...') is required to enable inline execution.
01:12:43.965 SEVERE - http://web/typo3/index.php 28 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'nonce-q-0rXT6ndm1d4k1PB_skehGuei9NU4RmepZIoI0jaD4t4mptySRwtg' 'report-sample'". Either the 'unsafe-inline' keyword, a hash ('sha256-eYBX9tiv0eShqtr6+0ybc98Tpn+++UDyS8IavaWnnig='), or a nonce ('nonce-...') is required to enable inline execution.
01:12:43.985 SEVERE - http://web/typo3/sysext/core/Resources/Public/JavaScript/java-script-item-handler.js?1699903243 12:137 Uncaught TypeError: Failed to resolve module specifier '@typo3/core/java-script-item-processor.js'
Scenario Steps:
1. $I->useExistingSession("admin") at Acceptance/Application/Template/TemplateCest.php:26
Artifacts:
Png: /builds/typo3/CI/cms/typo3/sysext/core/Tests/../../../../typo3temp/var/tests/AcceptanceReports/TYPO3.CMS.Core.Tests.Acceptance.Application.Template.TemplateCest.searchInTypoScriptActive.headless.fail.png
Html: /builds/typo3/CI/cms/typo3/sysext/core/Tests/../../../../typo3temp/var/tests/AcceptanceReports/TYPO3.CMS.Core.Tests.Acceptance.Application.Template.TemplateCest.searchInTypoScriptActive.headless.fail.html
FAILURES!
Tests: 36, Assertions: 162, Failures: 1.
</pre> TYPO3 Core - Bug #102328 (Resolved): Regression in cObjGethttp://forge.typo3.org/issues/1023282023-11-06T18:21:34ZBenjamin Franzkeben@bnf.dev
<p>Reported by Rafael Kähm in <a class="external" href="https://forge.typo3.org/issues/99503#note-13">https://forge.typo3.org/issues/99503#note-13</a></p>
<blockquote>
<p>Please reopen, because applied patch makes unnecessary BC at least on 11.5.<br />See:</p>
</blockquote>
<pre><code class="php syntaxhl" data-language="php">
<span class="k">public</span> <span class="k">function</span> <span class="n">cObjGet</span><span class="p">(</span><span class="nv">$setup</span><span class="p">,</span> <span class="nv">$addKey</span> <span class="o">=</span> <span class="s1">''</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nb">implode</span><span class="p">(</span><span class="s1">''</span><span class="p">,</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">cObjGetSeparated</span><span class="p">(</span><span class="nv">$setup</span><span class="p">,</span> <span class="nv">$addKey</span><span class="p">));</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">cObjGetSeparated</span><span class="p">(</span><span class="kt">?array</span> <span class="nv">$setup</span><span class="p">,</span> <span class="kt">string</span> <span class="nv">$addKey</span> <span class="o">=</span> <span class="s1">''</span><span class="p">):</span> <span class="kt">array</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">is_array</span><span class="p">(</span><span class="nv">$setup</span><span class="p">)</span> <span class="o">||</span> <span class="nv">$setup</span> <span class="o">===</span> <span class="p">[])</span> <span class="p">{</span>
<span class="k">return</span> <span class="p">[];</span>
<span class="p">}</span>
</code></pre>
<blockquote>
<p>Proposal:</p>
</blockquote>
<pre><code class="php syntaxhl" data-language="php"> <span class="k">public</span> <span class="k">function</span> <span class="n">cObjGet</span><span class="p">(</span><span class="nv">$setup</span><span class="p">,</span> <span class="nv">$addKey</span> <span class="o">=</span> <span class="s1">''</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">is_array</span><span class="p">(</span><span class="nv">$setup</span><span class="p">))</span> <span class="p">{</span>
<span class="k">return</span> <span class="s1">''</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nb">implode</span><span class="p">(</span><span class="s1">''</span><span class="p">,</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">cObjGetSeparated</span><span class="p">(</span><span class="nv">$setup</span><span class="p">,</span> <span class="nv">$addKey</span><span class="p">));</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="n">cObjGetSeparated</span><span class="p">(</span><span class="kt">?array</span> <span class="nv">$setup</span> <span class="o">=</span> <span class="p">[],</span> <span class="kt">string</span> <span class="nv">$addKey</span> <span class="o">=</span> <span class="s1">''</span><span class="p">):</span> <span class="kt">array</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">empty</span><span class="p">(</span><span class="nv">$setup</span><span class="p">))</span> <span class="p">{</span>
<span class="k">return</span> <span class="p">[];</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre> TYPO3 Core - Bug #102292 (Resolved): Respect the AsCommand `hidden` constructor argumenthttp://forge.typo3.org/issues/1022922023-10-30T16:47:00ZBenjamin Franzkeben@bnf.dev
<p>Symfony's AsCommand attribute encodes `hidden = true` into<br />a trailing `|` for the name attribute. Drop that for our<br />command list and mark the command as hidden in the command<br />registry.</p> TYPO3 Core - Bug #102245 (Resolved): CKEditor5 removePlugins configuration is not properly serial...http://forge.typo3.org/issues/1022452023-10-24T14:49:46ZBenjamin Franzkeben@bnf.dev
<p>Reported by Johannes Schlier:</p>
<p>Example configuration:</p>
<pre><code class="yaml syntaxhl" data-language="yaml"><span class="na">editor</span><span class="pi">:</span>
<span class="na">config</span><span class="pi">:</span>
<span class="na">removePlugins</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">image</span>
<span class="pi">-</span> <span class="s">specialchar</span>
</code></pre>
<p><code>"image"</code> is migrated which leaves <code>"specialchar"</code>, but the array is encoded to JSON as<br /><pre><code class="javascript syntaxhl" data-language="javascript"><span class="p">{</span><span class="dl">"</span><span class="s2">1</span><span class="dl">"</span><span class="p">:</span><span class="dl">"</span><span class="s2">specialchar</span><span class="dl">"</span><span class="p">}</span>
</code></pre><br />Instead of<br /><pre><code class="javascript syntaxhl" data-language="javascript"><span class="p">[</span><span class="dl">"</span><span class="s2">specialchar</span><span class="dl">"</span><span class="p">]</span>
</code></pre></p>
<p>Resulting in a CKEditor5 runtime error because the array method <code>some()</code> is tried to be executed on an object:</p>
<pre>
VM2902 ckeditor5-core.js:17 Uncaught (in promise) TypeError: e.some is not a function
at v (VM2902 ckeditor5-core.js:17:2271)
at VM2902 ckeditor5-core.js:17:1146
at Array.filter (<anonymous>)
at x.init (VM2902 ckeditor5-core.js:17:1134)
at w.initPlugins (VM2902 ckeditor5-core.js:37:2082)
at VM2846 ckeditor5-editor-classic.js:14:636
at new Promise (<anonymous>)
at w.create (VM2846 ckeditor5-editor-classic.js:14:593)
at CKEditor5Element.firstUpdated (VM2808 ckeditor5.js:13:3194)
</pre>