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 #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 #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 #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 #102243 (Under Review): RTE CKEditor5 "externalPlugins" configuration is not mig...http://forge.typo3.org/issues/1022432023-10-24T11:58:09ZBenjamin Franzkeben@bnf.dev
<p>The following CKEditor config loaded and configured the wordcount plugin in TYPO3 v11, but does not in TYPO3 v12.4.0-v12.4.7:</p>
<pre><code class="yaml syntaxhl" data-language="yaml"><span class="na">editor</span><span class="pi">:</span>
<span class="na">externalPlugins</span><span class="pi">:</span>
<span class="na">wordcount</span><span class="pi">:</span>
<span class="na">resource</span><span class="pi">:</span> <span class="s2">"</span><span class="s">EXT:rte_ckeditor/Resources/Public/JavaScript/Contrib/plugins/wordcount/plugin.js"</span>
<span class="na">maxCharCount</span><span class="pi">:</span> <span class="m">100</span>
<span class="na">maxWordCount</span><span class="pi">:</span> <span class="m">50</span>
<span class="na">showCharCount</span><span class="pi">:</span> <span class="kc">true</span>
<span class="na">showRemaining</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre>
<p>Note that this was not the recommended v11 config for "internal" plugins, but it did work and was used according to Josef Glatz (who reported this).</p>
<p>Note that the equivalent "official" v11 style config works and is properly migrated:</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">extraPlugins</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">wordcount</span>
<span class="na">wordcount</span><span class="pi">:</span>
<span class="na">maxCharCount</span><span class="pi">:</span> <span class="m">100</span>
<span class="na">maxWordCount</span><span class="pi">:</span> <span class="m">50</span>
<span class="na">showCharCount</span><span class="pi">:</span> <span class="kc">true</span>
<span class="na">showRemaining</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre>
<p>Ideally both formats would be supported in TYPO3 v12.</p> TYPO3 Core - Bug #102012 (Resolved): CKeditor5 link title (or other attributes) can not be unsethttp://forge.typo3.org/issues/1020122023-09-22T10:36:00ZBenjamin Franzkeben@bnf.dev
<p>When a link title is edited via CKEditor5 RTE Link browser, its value can not be unset, only changed.</p> TYPO3 Core - Bug #101918 (Resolved): CKEditor5 migration for contentsCss with cache busting query...http://forge.typo3.org/issues/1019182023-09-14T09:18:05ZBenjamin Franzkeben@bnf.dev
<p>With the following valid TYPO3 v11 ckeditor configuration in a v12 installation…</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">contentsCss</span><span class="pi">:</span> <span class="s2">"</span><span class="s">EXT:site/Resources/Public/Page/css/rte.css?v=4"</span>
</code></pre>
<p>…the CSS file is not taken into account, but a PHP warning is emitted instead.</p>
<p>The happens because the URL is read from the filesystem (by the ScssProcessor) instead of being requested directly via web request, without stripping the query string:<br /><pre>
PHP Warning
Core: Error handler (BE): PHP Warning: sha1_file(/var/www/html/typo3conf/ext/site/Resources/Public/Page/css/rte.css?v=4): Failed to open stream: No such file or directory in /var/www/html/typo3/sysext/rte_ckeditor/Classes/Form/Element/RichTextElement.php line 135
</pre></p>
<p>Note: A query string needed to be appended to RTE contentCss configuration in order to enforce browser cache busting on updates of the CSS file, when the default TYPO3 .htaccess configuration is used, which applies long-lived cache headers for resources by default.</p> TYPO3 Core - Bug #101885 (Resolved): runTests.sh -u does not update imageshttp://forge.typo3.org/issues/1018852023-09-09T05:03:10ZBenjamin Franzkeben@bnf.dev
<p>Update does nothing:<br /><pre>
Build/Scripts/runTests.sh -u
> prune unused, dangling local volumes
> pull ghcr.io/core-testing-*:latest versions of those ones that exist locally
> remove "dangling" ghcr.io/core-testing-* images (those tagged as <none>)
###########################################################################
Result of update
Environment: local
PHP: 8.1
SUCCESS
###########################################################################
</pre></p>
<p>Although the images are outdated<br /><pre>
[typo3-clean] (main) $ docker images | grep core-testing-php
ghcr.io/typo3/core-testing-php83 latest 184e88ecc62c 2 weeks ago 206MB
ghcr.io/typo3/core-testing-php82 latest 10292ff1a2dd 7 weeks ago 224MB
ghcr.io/typo3/core-testing-php81 latest d5e5c603d5b4 3 months ago 230MB
ghcr.io/typo3/core-testing-php74 latest 46fc907a5d1c 3 months ago 217MB
ghcr.io/typo3/core-testing-php72 latest 9fb67a3524b5 3 months ago 184MB
</pre></p> TYPO3 Core - Bug #101482 (Resolved): Mariadb acceptance test error detection not workinghttp://forge.typo3.org/issues/1014822023-07-29T07:43:51ZBenjamin Franzkeben@bnf.dev
<p>See <a class="external" href="https://typo3.slack.com/archives/C03AM9R17/p1690614726567099?thread_ts=1690593575.789689&cid=C03AM9R17">https://typo3.slack.com/archives/C03AM9R17/p1690614726567099?thread_ts=1690593575.789689&cid=C03AM9R17</a></p> TYPO3 Core - Bug #101480 (Resolved): Invalid null coalescing fallback to boolean in record listhttp://forge.typo3.org/issues/1014802023-07-29T06:59:54ZBenjamin Franzkeben@bnf.dev
<p>Causes an error since <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Task: Add native type declarations to GU array methods (Closed)" href="http://forge.typo3.org/issues/101453">#101453</a></p>
<pre><code>Core: Exception handler (WEB: BE): TypeError, code #0, file /builds/typo3/CI/cms/typo3/sysext/core/Classes/Utility/GeneralUtility.php, line 801: TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(): Argument #2 ($string) must be of type string, bool given, called in /builds/typo3/CI/cms/typo3/sysext/backend/Classes/RecordList/DatabaseRecordList.php on line 2242- TypeError: TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(): Argument #2 ($string) must be of type string, bool given, called in /builds/typo3/CI/cms/typo3/sysext/backend/Classes/RecordList/DatabaseRecordList.php on line 2242, in file /builds/typo3/CI/cms/typo3/sysext/core/Classes/Utility/GeneralUtility.php:801 -</code></pre>