Problem/Motivation

Discovered in #3270438: Remove CKEditor 4 from core. See #3270438-9: Remove CKEditor 4 from core.4 + #3270438-11: Remove CKEditor 4 from core.

Steps to reproduce

N/A

Proposed resolution

Stop using CKEditor 4 module's Editor plugin in tests; use \Drupal\editor_test\Plugin\Editor\UnicornEditor or \Drupal\editor_test\Plugin\Editor\TRexEditor instead.

Remaining tasks

CKEditor 5

  1. Update SmartDefaultSettingsTest → info in #35
  2. Update CKEditor5AllowedTagsTest → done in #5
  3. Update \Drupal\Tests\ckeditor5\FunctionalJavascript\AdminUiTest

Text Editor

  1. Update EditorDialogAccessTest</del>
  2. Update EditorPrivateFileReferenceFilterTest</del>
  3. Update EditorAdminTest

User interface changes

None.

API changes

None.

Data model changes

None.

Release notes snippet

N/A

Issue fork drupal-3270734

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Wim Leers created an issue. See original summary.

Wim Leers’s picture

Issue summary: View changes
xjm’s picture

xjm’s picture

Priority: Normal » Critical
Issue tags: +Drupal 10
Wim Leers’s picture

Status: Active » Needs review
FileSize
8.5 KB

Here's a kickstart for this issue, thanks to a planning meeting during which I was partially idle 🤓

This updates all of CKEditor5AllowedTagsTest's test methods (3 of the 8 affected) to not rely on CKEditor 4.

Wim Leers’s picture

+++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5AllowedTagsTest.php
@@ -80,31 +82,16 @@ public function testEnablingToVersion5Validation() {
   /**
-   * Tests that when image uploads are enabled in CKEditor 4, they remain in 5.
+   * Tests that when image uploads were enabled, they remain enabled.
    */
   public function testImageUploadsRemainEnabled(): void {

That's funny: this test now fails.

Because the CKEditor 5 module only took the liberty of fixing #3245351: Should switching text editors retain image upload settings? for the CKE 4 → 5 upgrade path, not for switching from some other text editor.

So if we want this to pass, we also need to broaden that fix, but it's still isolated to CKEditor 5, that upstream bug should still be fixed, and fixing it is out of scope here.

Wim Leers’s picture

Issue summary: View changes
Wim Leers’s picture

Issue summary: View changes

The last submitted patch, 5: 3270734-5.patch, failed testing. View results

Wim Leers’s picture

Still applies. Re-testing.

longwave’s picture

Status: Needs review » Needs work
Issue tags: +Needs reroll

The patch looks OK to me - mostly just swapping ckeditor for the test unicorn editor - but it no longer applies.

andregp’s picture

Status: Needs work » Needs review
Issue tags: -Needs reroll
FileSize
9.51 KB
5.59 KB

Here is a simple reroll :)

Status: Needs review » Needs work

The last submitted patch, 12: 3270734-12.patch, failed testing. View results

xjm’s picture

Issue tags: +Drupal 10 beta blocker

The fail in #12 looks relevant.

ameymudras’s picture

Status: Needs work » Needs review
FileSize
9.8 KB
3.38 KB

Re rolled the above patch

ameymudras’s picture

Adding another patch after phpcs fixes

Status: Needs review » Needs work

The last submitted patch, 16: 3270734-16.patch, failed testing. View results

Wim Leers’s picture

Status: Needs work » Needs review
FileSize
9.92 KB

Patch no longer applies.

Starting from #6 again, which was the last green test run.

Did not run test suite locally because once again dealing with chromedriver hell. Hopefully it passes 🤞

Wim Leers’s picture

Status: Needs review » Needs work

There are still plenty of remaining tasks listed in the issue summary though.

longwave’s picture

Ran this locally to find the failure as the DrupalCI output is unhelpful. The real error is:

1) Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5AllowedTagsTest::testSwitchToVersion5
Behat\Mink\Exception\ExpectationException: The field "filters[filter_html][settings][allowed_html]" value is "<br> <p> <h2 id="jump-*"> <h3 id> <h4 id> <h5 id> <h6 id> <cite> <dl> <dt> <dd> <a hreflang href> <blockquote cite> <ul type> <ol type="1 A I" start> <strong> <em> <code> <li>", but "<br> <p> <h2 id="jump-*"> <h3 id> <h4 id> <h5 id> <h6 id> <cite> <dl> <dt> <dd> <img src alt data-entity-type data-entity-uuid> <a hreflang href> <blockquote cite> <ul type> <ol type="1 A I" start> <strong> <em> <code> <li>" expected.

ie. <img src alt data-entity-type data-entity-uuid> is missing.

longwave’s picture

If I fix that by making $defaultElementsAfterUpdatingToCkeditor5 match, then it crashes further into the test:

1) Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5AllowedTagsTest::testSwitchToVersion5
Behat\Mink\Exception\ResponseTextException: The text "The text format unicorn has been updated" was not found anywhere in the text of the current page.

This is because of an error on the page:

InvalidArgumentException: The "ol" HTML tag has attribute restriction "type", but it is not an array of key-value pairs, with HTML tag attribute values as keys and TRUE as values. in Drupal\ckeditor5\HTMLRestrictions::validateAllowedRestrictionsPhase4() (line 240 of core/modules/ckeditor5/src/HTMLRestrictions.php).

Not sure how to fix this,

Wim Leers’s picture

#21: Hm, I'd swear I've seen that same crash months ago and that it was fixed. Maybe I misremember. A quick search revealed that indeed exactly this was fixed and even has explicit test coverage (see #3274648: HTMLRestrictions::merge() and ::toGeneralHtmlSupportConfig() fail on allowed attribute values that can be interpreted as integers). I wonder what I'm missing. Can you put a breakpoint on that line and check what exact input is causing this crash? 🙏

Semi-good news: getting the current patch back to green is only part of what needs to happen here! See the issue summary for the other tests that need to be updated to not use CKEditor 4 anymore 🤓 So while we figure out what's going on in #21, we can already proceed with the other parts. 👍

Wim Leers’s picture

longwave’s picture

Status: Needs work » Needs review
FileSize
10.42 KB
1.81 KB

This was a tricky one to debug! The issue is HTMLRestrictions::mergeAllowedElementsLevel() when passed a numeric key, which misbehaves thanks to PHP's loose typing.

A minimal test case is <ol type='1'>. Eventually this gets recursed down into:

$array1['1'] = TRUE;
$array2['1'] = TRUE;

When called with these arguments, ::mergeAllowedElementsLevel($array1, $array2) incorrectly returns [1, TRUE]. This is because array_keys($array1) casts the string key 1 to int!

php > var_dump(array_keys(['1' => TRUE]));
array(1) {
  [0]=>
  int(1)
}

And when we have a numeric key, array_merge() acts differently at the end of the method, and a corrupted array is produced.

PHP seems determined to treat the string key 1 as an integer, so the only fix that I can see is to avoid using array_merge(). If I replace this with a loop that sets the keys then the test passes for me.

This does seem identical to #3274648: HTMLRestrictions::merge() and ::toGeneralHtmlSupportConfig() fail on allowed attribute values that can be interpreted as integers and I'm not sure why the fix there appeared to work, but then hasn't worked here.

longwave’s picture

Now I've re-read what I've done, I see we just have a missing test case that will catch it.

The last submitted patch, 25: 3270734-25-test-only.patch, failed testing. View results

Wim Leers’s picture

Status: Needs review » Needs work

Wow, you found a "sub edge case" that we missed in #3274648! 👏 😅 Nice detective work & great comment in #24!

#25 looks great! But now we need the other remaining tasks to still be addressed — any chance you could take that on? 🤞


Here's a review in the meantime:

  1. +++ b/core/modules/ckeditor5/src/SmartDefaultSettings.php
    @@ -124,11 +124,14 @@ public function computeSmartDefaultSettings(?EditorInterface $text_editor, Filte
    +    // @todo Remove in https://www.drupal.org/project/drupal/issues/3245351
    +    if ($old_editor) {
    +      $editor->setImageUploadSettings($old_editor->getImageUploadSettings());
    +    }
         if ($old_editor && $old_editor->getEditor() === 'ckeditor') {
           $enabled_cke4_plugins = $this->getEnabledCkeditor4Plugins($old_editor);
           [$upgraded_settings, $messages] = $this->createSettingsFromCKEditor4($old_editor->getSettings(), $enabled_cke4_plugins, HTMLRestrictions::fromTextFormat($old_editor->getFilterFormat()));
           $editor->setSettings($upgraded_settings);
    -      $editor->setImageUploadSettings($old_editor->getImageUploadSettings());
    

    The point of this was to retain image upload settings, regardless of which text editor is the original one: CKEditor 4 or any other.

    (#3245351: Should switching text editors retain image upload settings? will fix this in the Text Editor module.)

  2. +++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5AllowedTagsTest.php
    @@ -120,14 +107,15 @@ public function testImageUploadsRemainEnabled(): void {
    -    // Assert that image uploads are enabled initially.
    -    $this->drupalGet('admin/config/content/formats/manage/cke4_image_uploads');
    -    $this->assertTrue($page->hasCheckedField('Enable image uploads'));
    

    It makes sense that we cannot do this: the Text Editor plugin itself is responsible for exposing image upload settings in some way. But because we switch from the CKEditor 4 text editor to the Unicorn text editor, there is no form element anymore to enable/disable image uploads.

  3. +++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5AllowedTagsTest.php
    @@ -120,14 +107,15 @@ public function testImageUploadsRemainEnabled(): void {
    +    // Enable the image upload toolbar item.
    +    $this->triggerKeyUp('.ckeditor5-toolbar-item-uploadImage', 'ArrowDown');
    +    $assert_session->assertWaitOnAjaxRequest();
    

    … which brings me to my point: we should NOT need this! The first hunk I commented on should make this happen automatically when switching to CKEditor 5.

    But I think the fact that there is no form element is what is causing all this weirdness!

    P.S.: I wrote this 🙈

… I think all of this could be solved (read: omitted from the patch) by adding this:

diff --git a/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php b/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
index 0317e12adf..f6a35434a4 100644
--- a/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
+++ b/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
@@ -39,9 +39,25 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
       '#type' => 'checkbox',
       '#default_value' => TRUE,
     ];
+    $form_state->loadInclude('editor', 'admin.inc');
+    $form['image_upload'] = editor_image_upload_settings_form($form_state->get('editor'));
+    $form['image_upload']['#element_validate'][] = [$this, 'validateImageUploadSettings'];
     return $form;
   }
 
+  /**
+   * #element_validate handler for "image_upload" in buildConfigurationForm().
+   *
+   * Moves the text editor's image upload settings into $editor->image_upload.
+   *
+   * @see editor_image_upload_settings_form()
+   */
+  public function validateImageUploadSettings(array $element, FormStateInterface $form_state) {
+    $settings = &$form_state->getValue(['editor', 'settings', 'image_upload']);
+    $form_state->get('editor')->setImageUploadSettings($settings);
+    $form_state->unsetValue(['editor', 'settings', 'image_upload']);
+  }
+
   /**
    * {@inheritdoc}
    */
Wim Leers’s picture

Issue summary: View changes
FileSize
3.04 KB
14.21 KB

Functional JS tests are once again not working because of Chrome + chromedriver shenanigans. No time to mess with that tonight. Here's hoping I get EditorAdminTest changes right the first time 🤓

longwave’s picture

I've tried this locally but I don't think the logic in #27 is correct.

#27.1 retains image upload settings, but nothing then adds the image upload button to the toolbar. In the case of the Unicorn editor there are no HTML restrictions so addToolbarItemsToMatchHtmlElementsInFormat() returns early and adds nothing. Only bold and italic are present in the toolbar by default.

#27.2 *can* be removed (ie. the assertion can be re-added) if the Unicorn editor supports image uploads via implementing editor_image_upload_settings_form().

#27.3 Because of #27.1, the toolbar button must still be manually added.

longwave’s picture

SmartDefaultSettingsTest relies heavily on existing CKEditor 4 config. Not sure how we can replace this with Unicorn editor and keep the test coverage intact for upgrading from CKEditor 4? As an example of the sort of thing that will be hard to replace with Unicorn editor:

    // Add "insert media from library" button to CKEditor 4 configuration, the
    // pre-existing toolbar item group labeled "Media".
    $settings['toolbar']['rows'][0][3]['items'][] = 'DrupalMediaLibrary';

Unicorn editor has no concept of toolbar buttons or integration with media library that I can see. But adding it to Unicorn editor is building a huge test stub for no benefit other than decoupling the test - the test itself doesn't feel like it would be testing the real world upgrade path any more.

It feels like we will need some kind of CKEditor 4 stub left behind (either as a skeleton ckeditor.module or rolled into CKEditor 5 module) as existing editor configs have dependencies on the module and schema, and we also need enough code left that we can test the upgrade path.

longwave’s picture

Issue summary: View changes
Status: Needs work » Needs review

The addition of image uploads to Unicorn editor in #27 *has* made the conversion of the editor image upload tests from CKEditor to Unicorn editor much easier, however! All tests are addressed except SmartDefaultSettingsTest, which as stated above I'm really not sure how to handle without losing valuable upgrade test coverage.

Oh, and I converted to an MR because patches were getting too difficult to handle, and I can make atomic commits which should be easier to review.

Wim Leers’s picture

Assigned: Unassigned » Wim Leers

Been trying all day to get to this, but it's now past 19:00 and my day has been sunk into #3222756: Allow using images from external source — assigning this to myself for tomorrow 🤓

bnjmnm made their first commit to this issue’s fork.

bnjmnm’s picture

Assigned: Wim Leers » Unassigned

I'd already converted the CKEditor 4 config to be fixtures in #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest so we could continue testing the upgrade path. That issue hasn't landed yet, so I added those changes to the MR here as well. If a merge conflict arises I don't think it will be a difficult one.

bnjmnm’s picture

Issue summary: View changes
longwave’s picture

Thanks @bnjmnm. Rebased against 10.0.x.

If I now remove ckeditor from SmartDefaultSettingsTest::$modules the config can be installed we run into the same problem I describe in #3304736-10: Provide a good UX to ensure the CKEditor 4 to 5 update is always done before upgrading to Drupal 10 unless the contrib module is installed - the fixtures depend on the ckeditor plugin, which has to remain in some form in Drupal 10 for the upgrade path and related tests to still function. Therefore I think for the purposes of this issue SmartDefaultSettingsTest has to keep its dependency on ckeditor module and we have to solve all this in a followup.

bnjmnm’s picture

I added a fackeditor module to CKEditor 5's test modules. It is a find/replace copy of the CKEditor module with everything stripped out that SmartDefaultSettingsTest doesn't need (that I'm aware of). This works for me locally, now lets see if the testbot is OK with it.

Wim Leers’s picture

Assigned: Unassigned » Wim Leers

#37: That problem is solved in #3304736-14: Provide a good UX to ensure the CKEditor 4 to 5 update is always done before upgrading to Drupal 10 unless the contrib module is installed now! 👍🤓

#38: 🤣👏


Let me try using the approach that #3304736-14: Provide a good UX to ensure the CKEditor 4 to 5 update is always done before upgrading to Drupal 10 unless the contrib module is installed introduced to avoid adding (well, copying) many dozens of files from core/modules/ckeditor into core/modules/ckeditor5/tests/modules/fackeditor 🤞 To quickly prove that, I'm going to modify the MR to only run CKE5 tests, cherry-pick that commit from the other issue, and observe what happens. 🤓
Wim Leers’s picture

Status: Needs review » Needs work

Yay, that got us past it! So this should be a viable path forward with far less code! 🤞

But now the failures are in a different spot:

Drupal\Component\Plugin\Exception\PluginNotFoundException: The "ckeditor" plugin does not exist. Valid plugin IDs for Drupal\editor\Plugin\EditorManager are: ckeditor5

/var/www/html/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php:53
/var/www/html/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryCachedTrait.php:25
/var/www/html/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:16
/var/www/html/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
/var/www/html/core/modules/editor/src/Entity/Editor.php:121
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php:320
/var/www/html/core/lib/Drupal/Core/Entity/EntityStorageBase.php:528
/var/www/html/core/lib/Drupal/Core/Entity/EntityStorageBase.php:483
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php:253
/var/www/html/core/lib/Drupal/Core/Entity/EntityBase.php:339
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php:608
/var/www/html/core/modules/ckeditor5/tests/src/Kernel/SmartDefaultSettingsTest.php:91
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestResult.php:726

Line 121 of Editor.php is in here:

  public function calculateDependencies() {
    parent::calculateDependencies();
    // Create a dependency on the associated FilterFormat.
    $this->addDependency('config', $this->getFilterFormat()->getConfigDependencyName());
    // @todo use EntityWithPluginCollectionInterface so configuration between
    //   config entity and dependency on provider is managed automatically.
    $definition = $this->editorPluginManager()->createInstance($this->editor)->getPluginDefinition();
    $this->addDependency('module', $definition['provider']);
    return $this;
  }

… we're literally just crashing now on RE-calculating dependencies for Text Editor config entities that should not be recalculated because we're talking about a test fixture here!

And that's only because the test is doing things like:

    Editor::create(
      Yaml::parseFile('core/profiles/standard/config/install/editor.editor.basic_html.yml')
    )->save();

… even though that really should be created that way. Let me figure out the optimal way to install configuration! 🤓

Wim Leers’s picture

Status: Needs work » Needs review

Yay, got past that too, next:

Drupal\Core\Config\Schema\SchemaIncompleteException: Schema errors for editor.editor.full_html with the following errors: editor.editor.full_html:settings missing schema

/var/www/html/core/lib/Drupal/Core/Config/Development/ConfigSchemaChecker.php:94
/var/www/html/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php:108
/var/www/html/core/lib/Drupal/Core/Config/Config.php:229
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php:274
/var/www/html/core/lib/Drupal/Core/Entity/EntityStorageBase.php:486
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php:253
/var/www/html/core/lib/Drupal/Core/Entity/EntityBase.php:339
/var/www/html/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php:608
/var/www/html/core/modules/ckeditor5/tests/src/Kernel/SmartDefaultSettingsTest.php:91
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestResult.php:726

https://git.drupalcode.org/project/drupal/-/merge_requests/2665/diffs?co... made that green 👍

Wim Leers’s picture

Assigned: Wim Leers » Unassigned
Status: Needs review » Needs work

Reviewed. This is almost RTBC. 3 questions remain 😊

longwave’s picture

The MR comments all seem related to the fact that Unicorn is a very simple editor and the test format doesn't provide any HTML restrictions or any other filters for that matter. While Unicorn has image uploads configured, SmartDefaultSettings doesn't explicitly know that it supports images, and so it doesn't add the image upload toolbar button.

It could equally be argued that when upgrading Unicorn, we should be adding *all* the toolbar buttons by default, as it technically supports anything due to the lack of filters. Are there any real world examples of editors other than CKEditor 4 in use, that are planning a migration path to CKEditor 5? If not, I'm not sure I see much value in these Unicorn test cases, when it's not really a full implementation - we should just test a real CKEditor config instead.

We already special case CKEditor 4 in SmartDefaultSettings:

    if ($old_editor && $old_editor->getEditor() === 'ckeditor') {

But maybe SmartDefaultSettings should *only* work with CKEditor 4? If we need a special case here, what's to say we don't need special cases for other editors?

lauriii’s picture

Status: Needs work » Needs review

Triggering test bot

Wim Leers’s picture

So my 3 remaining concerns were all about test coverage: I want to make sure we do not lose test coverage.

Looks like I trolled myself, because all 3 were introduced by myself in #5 🙈

testImageUploadsRemainEnabled(): the // Enable the image upload toolbar item. addition
Confirmed that this is necessary and fine, but it's unclear why. It does NOT enable image uploads: it triggers the image upload settings form to become visible, to allow the image upload status to be checked. We should add a comment.
testSwitchToVersion5(): the $this->assertSession()->pageTextContains('The following attribute(s) are already supported by enabled plugins and should not be added to the Source Editing "Manually editable HTML tags" field: Image (<img src alt data-entity-uuid data-entity-type>)'); removal
In #5, I modified \Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5AllowedTagsTest::$defaultElementsWhenUpdatingNotCkeditor5. Previously, it contained markup typical for CKEditor 4, i.e. including <img src alt data-entity-type data-entity-uuid>. #5 removed that. Why? Because to test the behavior of switching to CKEditor 5, I created a fresh text format + editor … that used CKEditor 4. The DrupalImage button is placed in the CKEditor 4 toolbar by default (see \Drupal\ckeditor\Plugin\Editor\CKEditor::getDefaultSettings(). This explains the presence of the <img> tag.

Switching to the Unicorn editor does not trigger that anymore.

Now, that's fine, except that this causes the The following attribute(s) are already supported by enabled plugins and should not be added to the Source Editing "Manually editable HTML tags" field: Image (<img src alt data-entity-uuid data-entity-type>) message to no longer appear, and that's something that is explicitly asserted in HEAD.

Apparently April-Wim thought that it was fine to lose this test coverage. August-Wim is not so sure!

So I dug into this and … found that \Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5AllowedTagsTest::testAllowedTags() explicitly tests this in the UI! 👍 (And it's tested at the unit level in many scenarios in \Drupal\Tests\ckeditor5\Kernel\ValidatorsTest::testPair().) That means it's fine to simplify testSwitchToVersion5() and remove that assertion, because as the name of the test method indicates: that's not the intent of that particular test; it was actually just a distraction in that test 👍

testSwitchToVersion5(): the // Return to the confirm form and enable the image upload toolbar item. addition
Much like the above, turns out this was only necessary because of the DrupalImage button being in the CKEditor 4 toolbar by default: the original test was also distracted with the fact that CKEditor 4 could be saved with image uploads being disabled, but CKEditor 5 does not allow that (at least not in HEAD, it will soon: #3222756: Allow using images from external source). So the proper fix is to just delete all that completely, resulting in a much easier to understand test! 🥳
Wim Leers’s picture

Status: Needs review » Reviewed & tested by the community

That was green!

No more remarks. Let's do this! 🚢

(Yes, I wrote the very beginning of this patch. But then @longwave took it to the finish line. And as #45 shows, I've very strongly disagreed with my own initial patch in #5 🙈😅 All I did here was simplify clean up test fixtures — see #39 — and thoroughly verify that we do not lose any test coverage — see #45.)

longwave’s picture

+1 RTBC to the bits I didn't write, this has been comprehensively worked on in the last week and I don't have anything more to add.

Wim Leers’s picture

@lauriii pointed out in chat that \Drupal\Tests\ckeditor5\FunctionalJavascript\CKEditor5CKEditor4Compatibility should be moved into core/modules/ckeditor too, otherwise we'd still have a test relying on CKE4 after removing core/modules/ckeditor in #3270438: Remove CKEditor 4 from core.

Trivial change (pushed it already), so keeping at RTBC.

  • lauriii committed f09840a on 10.1.x
    Issue #3270734 by Wim Leers, longwave, andregp, bnjmnm: Update Editor +...

  • lauriii committed 5b0cd33 on 10.0.x
    Issue #3270734 by Wim Leers, longwave, andregp, bnjmnm: Update Editor +...

  • lauriii committed 0328f18 on 9.5.x
    Issue #3270734 by Wim Leers, longwave, andregp, bnjmnm: Update Editor +...

lauriii’s picture

Version: 10.0.x-dev » 9.5.x-dev
Status: Reviewed & tested by the community » Fixed

Committed f09840a and pushed to 10.1.x. Also cherry-picked to 10.0.x and 9.5.x. Thanks!

Wim Leers’s picture

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

Wim Leers’s picture

Version: 9.5.x-dev » 9.4.x-dev
Status: Closed (fixed) » Patch (to be ported)

We should still get this committed to 9.4.x.

The difference here is that we should not update the editor module's tests in 9.4.x. Only the ckeditor5 module. And because #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest obviously won't be backported to 9.4.x either, we need to change the tests slightly.

Wim Leers’s picture

Wim Leers’s picture

I need at least the core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php hunk from the 9.5.x commit if this wants to be able to pass tests.

Wim Leers’s picture

Status: Patch (to be ported) » Reviewed & tested by the community

Green! 👍

  • catch committed 142f1c6 on 9.4.x
    Issue #3270734 by Wim Leers, longwave, andregp, bnjmnm, lauriii: Update...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed 142f1c6 and pushed to 9.4.x. Thanks!

Wim Leers’s picture

Version: 9.4.x-dev » 9.5.x-dev
Status: Fixed » Closed (fixed)

Thanks!

Restoring previous issue state.