Branch: refs/heads/master
Home:
https://github.com/xwiki/xwiki-platform
Commit: 08d1c93f581cf9573d8a6c915fb4afb1420070b2
https://github.com/xwiki/xwiki-platform/commit/08d1c93f581cf9573d8a6c915fb4…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-realtime/plugin.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* In order to reduce the number of local changes we need to synchronize on the editor
output HTML (that is converted to wiki syntax) but for this we need to make sure the
whitespace at the end of lines is preserved.
Commit: d3713253bca18306331c3d47e125cb2c7e4f7241
https://github.com/xwiki/xwiki-platform/commit/d3713253bca18306331c3d47e125…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-macro/macroEditor.js
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-macro/plugin.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Simplify the editor HTML output by removing redundant content (the value of macro
content and parameters that are editable in-place), in order to reduce the size of the
diffed content and the number of local changes.
Commit: e77512670f751178dfc7572aa9f40b8a7b11162f
https://github.com/xwiki/xwiki-platform/commit/e77512670f751178dfc7572aa9f4…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wiki/xwiki-platform-realtime-wiki-webjar/src/main/webjar/textCursor.js
Log Message:
-----------
[misc] Simplify code and fix code style.
Commit: c19f00a9717a2666a0cc1043c6b362803379aaf1
https://github.com/xwiki/xwiki-platform/commit/c19f00a9717a2666a0cc1043c6b3…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wiki/xwiki-platform-realtime-wiki-webjar/src/main/webjar/wikiEditor.js
Log Message:
-----------
[misc] Remove unused dependencies.
Commit: 0a3fb72abb5223501a18ba0f42dc269ba91e70c5
https://github.com/xwiki/xwiki-platform/commit/0a3fb72abb5223501a18ba0f42dc…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/typingTests.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/wysiwygEditor.js
Log Message:
-----------
[misc] Improve typing simulation used for debugging / testing realtime edit during
development.
Commit: edbe5408b040f6e73a584d412aa7083d2eedffd6
https://github.com/xwiki/xwiki-platform/commit/edbe5408b040f6e73a584d412aa7…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/editor.js
R
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/filters.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/patches.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/wysiwygEditor.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Synchronize using the editor output HTML (i.e. what is sent to the server to be
converted to wiki syntax) in order to avoid dealing with local changes and also avoid
applying complex (HyperJSON) filters to obtain the normalized content (the editor output
HTML is the normalized content).
* The editor output HTML can contain XML comments (annotations like macro markers) but
HyperJSON doesn't support comments, so we need to protect/unprotect them when
converting to/from HyperJSON.
* Restoring the diff-based text selection is costly and is not needed most of the time
(when users edit in different sections of the content) so we also save a
"relative" selection that can be invalidated when applying the DOM patch
Commit: 5ed57a30e371591d1dbd38c2f34fedc492bf5e74
https://github.com/xwiki/xwiki-platform/commit/5ed57a30e371591d1dbd38c2f34f…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-ui/src/main/resources/XWiki/Realtime/WysiwygEditor.xml
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* The filters module has been removed (because it's not needed anymore)
Commit: c5443ebe99f9b2b9b7beade548d4aa6b5b2d3111
https://github.com/xwiki/xwiki-platform/commit/c5443ebe99f9b2b9b7beade548d4…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-test/xwiki-platform-ckeditor-test-pageobjects/src/main/java/org/xwiki/ckeditor/test/po/CKEditor.java
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-test/xwiki-platform-ckeditor-test-pageobjects/src/main/java/org/xwiki/ckeditor/test/po/MacroDialogEditModal.java
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-test/xwiki-platform-ckeditor-test-pageobjects/src/main/java/org/xwiki/ckeditor/test/po/RichTextAreaElement.java
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-test/xwiki-platform-realtime-wysiwyg-test-docker/src/test/it/org/xwiki/realtime/wysiwyg/test/ui/RealtimeWYSIWYGEditorIT.java
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-test/xwiki-platform-realtime-wysiwyg-test-pageobjects/src/main/java/org/xwiki/realtime/wysiwyg/test/po/RealtimeCKEditor.java
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Wait for macros to be rendered after inserting or editing a macro.
* Verify that applying remote changes doesn't steal the focus from the Edit Macro
modal.
Commit: d066580cafd1e9a1affed2de1d668023f90a476a
https://github.com/xwiki/xwiki-platform/commit/d066580cafd1e9a1affed2de1d66…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-realtime/ckeditorRealtimeAdapter.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Save snapshot before and after patching the DOM, in order to be able to undo/redo a
remote change
* Prevent the editor for recording undo/redo history entries while we patch and reload the
content (in case a macro was modified)
* Make sure the editor doesn't fire change events while we patch and reload the
content
* When diffing the DOM ignore the widget (e.g. macro) output and use instead only the
widget data. We do this by replacing the widgets with some custom HTML elements and then
revert (restore the widget output) after the patch is applied.
* Don't use the native selection because the editor might not be focused (in fact the
editor loses the focus whenever we switch the browser tab/window, which happens a lot in
functional tests). Use instead the selection that the editor saves (remembers from the
last time is had the focus).
Commit: 0f5ff7ea2d173b246b85b2baf90f77abcacc53ae
https://github.com/xwiki/xwiki-platform/commit/0f5ff7ea2d173b246b85b2baf90f…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-selection/plugin.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/patches.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Improve selection restore code to:
** not steal the focus when remote changes are applied
** take into account only the visible text (and focusable elements) when encoding the text
selection in order to avoid unexpected results when performing the diff
** better scroll into view focused / selected widgets
* Also allow changes on the root node if the change affects its children (i.e. change.node
is actually the parent of the changed nodes)
Commit: d933cd4168577b6002147c1d42b22a6325b76ff4
https://github.com/xwiki/xwiki-platform/commit/d933cd4168577b6002147c1d42b2…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-selection/plugin.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/patches.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Preserve the selection direction (e.g. when using Shift + Arrow Left to select text and
a remote change is applied)
Commit: fa1c0bb344a442d0945233c2d4ffdfd7f5ccfd78
https://github.com/xwiki/xwiki-platform/commit/fa1c0bb344a442d0945233c2d4ff…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-realtime/ckeditorRealtimeAdapter.js
Log Message:
-----------
XWIKI-22034: Realtime WYSIWYG editor is very slow even on medium size content
* Properly initialize the new nested editables after a remote change is applied in order
to prevent adding them multiple times.
* Re-render the macros when a new nested editable is added for a macro widget.
Compare:
https://github.com/xwiki/xwiki-platform/compare/fa9c3ed83da9...fa1c0bb344a4
To unsubscribe from these emails, change your notification settings at
https://github.com/xwiki/xwiki-platform/settings/notifications