9.3.10
This is a patch (bugfix) release of Drupal 9 and is ready for use on production sites. Learn more about Drupal 9.
Drupal 9.3.x10 will receive security coverage until December 2022.
If you are upgrading from Drupal 8, read upgrading a Drupal 8 site to Drupal 9, 9.0.0 release notes, and the 9.3.0 release notes before upgrading to this release.
Important update information
The beta experimental CKEditor 5 module now uses version 34.0.0 of the CKEditor 5 JavaScript library, which fixes several critical issues.
Previously, jQuery UI was an emeritus (unsupported) project. However, it recently began receiving support again. Therefore, Drupal core has replaced its fork of jQuery UI with jQuery UI itself, to make it easier to keep it up to date. Additionally, core's jQuery UI package dependencies have been updated to jQuery UI 1.13.1. The unminified source code is kept in core to allow easy audit during future library updates.
Known issues
Search the issue queue for known issues.
All changes since 9.3.9
- Issue #3248423 by nod_, Wim Leers, lauriii: Decide how CKEditor 5-provided types should be referenced
- Issue #3248448 by hooroomoo, lauriii, Wim Leers: Dialog loading text is unstyled
- Issue #3270765 by Wim Leers, lauriii: Add test coverage for createDropdown in drupalElementStyles
- Issue #3260857 by Wim Leers, lauriii: Expand SourceEditingRedundantTagsConstraintValidator to also check attributes and attribute values
- Issue #3268318 by lauriii, Wim Leers, tim.plunkett: [drupalMedia] with GHS allowed attributes downcast wraps data-caption with
- Issue #3263384 by nod_, Wim Leers, lauriii: Add ckeditor5-code-block package and CodeBlock plugin
- Issue #3222757 by lauriii, Wim Leers, nod_, rachel_norfolk, itmaybejj, mgifford, ckrina, andrewmacpherson, solideogloria, Luke.Leber: [drupalImage] Make image alt text required or strongly encouraged
- Issue #3269868 by lauriii, andregp, ravi.shankar, Wim Leers: [drupalImage] Some Image attributes are lost in edge cases where image upcasts into inline image
- Issue #3274767 by nod_, lauriii: Update to CKEditor 5 v34.0.0
- Issue #3263935 by huzooka, danflanagan8, quietone: system_site migrates default 403, 404 and front page paths as forward slash (/)
- Issue #3265626 by bnjmnm, Wim Leers, nod_, lauriii, alexpott, andregp: Changes to "Manually editable HTML tags" lost if form is submitted without triggering AJAX
- Issue #3273626 by xjm, dww, Spokje: Drupal Media JavaScript test suite causes database locks on SQLite
- Issue #3203604 by Eli-T, snig, justafish, kuldeep_mehra27, Matroskeen, Finn Lewis, shaal, ckrina, dawehner, diarcastro: Add a new recipe to Umami - Borscht with pork ribs
- Issue #3270940 by quietone: Move all non migration Color tests to the module in preparation of removal
- Issue #3173159 by sardara, JeroenT: Block add form ajax callback implementation issues
- Issue #3273527 by joevagyok, Wim Leers: Upgrade path never configures the ckeditor5_heading plugin to allow
- Issue #3272797 by bnjmnm, phenaproxima, xjm: [random test failure] Restore LayoutBuilderTest::testConfigurableLayoutSections()
- Issue #3273312 by Wim Leers, Dom., ifrik, mpp, seanB, lauriii: Upgrading from CKEditor 4 for a text format that has FilterInterface::TYPE_MARKUP_LANGUAGE filters enabled
- Issue #3273332 by Wim Leers, DieterHolvoet: Merging cells in tables is possible in UI, but lost upon saving
- Issue #3265929 by jonathanshaw, yogeshmpawar, quietone, xjm: Rewrite examples of form options to be less culturally specific
- Issue #2779999 by shashikant_chauhan, guilhermevp, dww, joachim, xjm: Document checkboxes and radios element can have individual descriptions
- Issue #3112547 by andypost, dww, yogeshmpawar, Lendude, bnjmnm, danflanagan8, mglaman, joachim: Views UI tests should not rely on Classy
- Issue #3272746 by Shashwat Purav, danflanagan8: Layout Discovery tests should not rely on Classy
- Issue #3272731 by Shashwat Purav, danflanagan8: jsonapi tests should not rely on Classy
- Issue #3268307 by lauriii, Wim Leers: $block wildcard resolves into a superset of the actual $block tags
- Issue #3268680 by phenaproxima, xjm, Spokje, ravi.shankar, bnjmmn: [random test failure] Restore and fix LayoutBuilderDisableInteractionsTest::testFormsLinksDisabled()
- Issue #3265723 by nevergone: Duplicate word: directly
- Issue #3230829 by mohit_aghera, marcvangend, Wim Leers, Kristen Pol: editor_form_filter_format_form_alter() does not remove "editor_plugin" from form state when needed
- Issue #3219921 by nironan, kostyashupenko, javi-er, Gauravmahlawat, jens.de.geit, mchameddie, Kristen Pol, timohuisman, andy-blum, ckrina: Claro: display the vertical scrollbar when many results are returned by linkit
- Issue #2873732 by vijaycs85, GaëlG: Array to string conversion in CacheContextsManager::convertTokensToKeys() because of the 'cookies' cache context
- Issue #3115054 by chr.fritsch, vsujeetkumar, Vidushi Mehta, sergiuteaca, janmejaig, ranjith_kumar_k_u, phenaproxima: Media library widget forgets ordering when adding or removing items
- Issue #3268860 by lauriii, Wim Leers: Elements wrapping are not retained
- Merge 9.3.9, resolve merge conflicts, and update lockfile and dev versions.
- Issue #3259443 by marcvangend, bnjmnm, Abhijith S: Plugin settings do not appear when a configurable plugin is added AFTER removing all buttons
- Issue #3270108 by bnjmnm, Wim Leers: Editor does not load when using Edge + WHCM
- Revert "Issue #2636086 by Matroskeen, jian he, Sweetchuck, dawehner, Lendude: Add extra test coverage for operators of views date filters"
- Issue #2636086 by Matroskeen, jian he, Sweetchuck, dawehner, Lendude: Add extra test coverage for operators of views date filters
- Issue #3231328 by Wim Leers, nod_: SmartDefaultSettings should select the CKE5 plugin that minimizes creation of HTML restriction supersets
- Issue #3270110 by bnjmnm, Wim Leers: Toolbar config items missing "press arrow to do {x}" instructions for screenreaders
- Issue #3270112 by bnjmnm, Wim Leers: Excessive aria-live announcing from ckeditor5-admin-help-message live region
- Issue #3260869 by lauriii, Wim Leers, bnjmnm, alexpott, catch: Resolve mismatch between <$block> interpretation by CKEditor 5 and Drupal
- Back to dev.
- Merged 9.3.8.
- Issue #3231337 by lauriii, Wim Leers: [drupalMedia] Remove manual dataDowncast from DrupalMediaEditing
- Issue #3248228 by lauriii, Wim Leers: Unable to change selection after linking inline media when manual decorators have been defined
- Revert "Issue #3269064 by lauriii, xjm, Wim Leers: Update to CKEditor 5 v33.0.0"
- Issue #3268174 by Wim Leers, nod_, catch, lauriii: Bug in CKE 4 → 5 upgrade path "format" does not always map to "heading", it could map to "codeBlock" too, or both, or neither
- Issue #3162228 by longwave, Spokje, freelock, jackson.cooper, phenaproxima, xjm: Composer 2 Fatal error Call to undefined method Composer\DependencyResolver\Operation\UpdateOperation::getJobType() in /home/mysite/public_html/core/lib/Drupal/Core/Composer/Composer.php:170
- Issue #2911473 by Maouna, joachim, adinac, dhirendra.mishra, ravi.shankar, MaskOta, ranjith_kumar_k_u, kuldeep_mehra27, mahtab_alam, fabienly, carolpettirossi, joelpittet, jenlampton, dww: Selected yet disabled individual options from checkboxes element don't persist through save
- Issue #3266443 by quietone: Rename StateFileExists to StateFileExistsTest
- Issue #3269064 by lauriii, xjm, Wim Leers: Update to CKEditor 5 v33.0.0
- Issue #3226716 by beatrizrodrigues, joachim, xjm, lucienchalom: Missing return value documentation for TranslatableInterface::addTranslation()
- Issue #3267124 by longwave, alexpott: Temporarily skip failing tests
- Issue #3252562 by rlhawk, mikelutz, benjifisher, danflanagan8: In Callback Migrate process, document how to use functions that accept no argument as callable
- Issue #3248430 by nod_, Wim Leers, lauriii: Improve Drupal.ckeditor5 documentation
- Issue #3268272 by sayco: TypeError: strpos(): Argument #1 ($haystack) must be of type string, int given in strpos()
- Issue #3268368 by lauriii, xjm, Wim Leers: Robustify and restore \Drupal\Tests\ckeditor5\FunctionalJavascript\MediaLibraryTest::testButton
- Issue #3041900 by ankithashetty, Krzysztof Domański, yogeshmpawar, longwave: The element selector type "CSS, XPath" in JSWebAssert should be lowercase
- Issue #3267705 by xjm, longwave: Fix error message when 'yarn check -s' fails in the commit check script
- Issue #3265652 by nod_, xjm, lauriii, Wim Leers, Gábor Hojtsy: Unfork jQuery UI
- Issue #3264727 by lauriii, Wim Leers, benjifisher, andregp, AaronMcHale, kimberlly_amaral, rkoller, ckrina, worldlinemine, Antoniya, victoria-marina, shaal, tmaiochi: [drupalMedia|drupalImage] Allow removing data-align in the UI, and making an image inline
- Issue #3264775 by lauriii, Wim Leers: [drupalMedia] Toolbar should be visible when element inside is focused
- Issue #3194084 by bnjmnm, Wim Leers, lauriii, hooroomoo, Gábor Hojtsy: Support functionality equivalent to ckeditor_stylesheets
- Issue #3260853 by Wim Leers, bnjmnm: [GHS] Partial wildcard attributes
(<foo data-*>, <foo *-bar-*>, <foo *-bar>)
and attribute values(<h2 id="jump-*">)
not yet supported - Issue #3260032 by longwave, bnjmnm, Wim Leers, samuel.mortenson: CKEditor 5 adds ie11.user.warnings library to every page, triggering a FOUC even for anonymous users
- Issue #3261600 by lauriii, hooroomoo, Wim Leers: Update to CKEditor5 v32.0.0
- Issue #3268070 by xjm: Temporarily skip even more failing tests
- Issue #3263201 by manuel.adan: Missing argument type on hook_shortcut_default_set declaration
- Issue #3267644 by danflanagan8, mglaman: Custom Block (block_content) tests should not rely on Classy
- Issue #3250397 by alexpott, mondrake, ressa, daffie, xjm: DbLog triggers PHP deprecation on PHP8.1 when running from CLI
- Issue #3267823 by alexpott, Spokje: \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditIntegrationTest::testCustomBlock(). is failing on latest chromedriver
- Issue #3267754 by lauriii: AjaxTest is failing
- Issue #2797141 by Driskell, daffie, andypost, Charlie ChX Negyesi, benjifisher: Remove the methods tableExists() and fieldExists() from Drupal\Core\Database\Driver\mysql\Schema