New Features:
-
#13501: Added the
config.fileTools_defaultFileName
option to allow setting a default filen ame for paste uploads. - #13603: Added support for uploading dropped BMP images.
Fixed Issues:
- #13590: Fixed: Various issues related to the Paste from Word feature. Fixes also:
- #13386: [Edge] Fixed: Issues with selecting and editing images.
-
#13568: Fixed: The
editor.getSelectedHtml()
method returns invalid results for entire content selection. - #13453: Fixed: Drag&drop of entire editor content throws an error.
- #13465: Fixed: Error is thrown and the widget is lost on drag&drop if it is the only content of the editor.
- #13414: Fixed: Content auto paragraphing in a nested editable despite editor configuration.
- #13429: Fixed: Incorrect selection after content insertion by the Auto Embed plugin.
- #13388: Fixed: Table Resize integration with Undo is broken.
Other Changes:
Fixed Issues:
- #13609: [Edge] Fixed: The browser crashes when switching to the source mode. Thanks to Andrew Williams and Mark Smeed!
- PR#201: Fixed: Buttons in the toolbar configurator cause form submission. Thanks to colemanw!
-
#13422: Fixed: A monospaced font should be used in the
<textarea>
element storing editor configuration in the toolbar configurator. - #13494: Fixed: Error thrown in the toolbar configurator if plugin requirements are not met.
- #13409: Fixed: List elements incorrectly merged when pressing Backspace or Delete.
- #13434: Fixed: Dialog state indicator broken in Right–To–Left environments.
- #13460: [IE8] Fixed: Copying inline widgets is broken when Advanced Content Filter is disabled.
- #13495: [Firefox, IE] Fixed: Text is not word-wrapped in the Paste dialog window.
-
#13528: [Firefox@Windows] Fixed: Content copied from Microsoft Word and other external applications is pasted as a plain text. Removed the
CKEDITOR.plugins.clipboard.isHtmlInExternalDataTransfer
property as the check must be dynamic. -
#13583: Fixed:
DataTransfer.getData()
should work consistently in all browsers and should not strip valuable content. Fixed pasting tables from Microsoft Excel on Chrome. -
#13468: [IE] Fixed: Binding drag&drop
dataTransfer
does not work iftext
data was set in the meantime. - #13451: [IE8-9] Fixed: One drag&drop operation may affect following ones.
- #13184: Fixed: Web page reloaded after a drop on editor UI.
- #13129 Fixed: Block widget blurred after a drop followed by an undo.
- #13397: Fixed: Drag&drop of a widget inside its nested widget crashes the editor.
-
#13385: Fixed:
editor.getSnapshot()
may return a non-string value. - #13419: Fixed: The Auto Link plugin does not encode double quotes in URLs.
- #13420: Fixed: The Auto Embed plugin ignores encoded characters in URL parameters.
- #13410: Fixed: Error thrown in the Auto Embed plugin when undoing right after pasting a link.
- #13566: Fixed: Suppressed notifications in the Media Embed Base plugin.
- #11616: [Chrome] Fixed: Resizing the editor while it is not displayed breaks the editable. Fixes also #9160 and#9715.
- #11376: [IE11] Fixed: Loss of text when pasting bulleted lists from Microsoft Word.
- #13143: [Edge] Fixed: Focus lost when opening the panel.
- #13387: [Edge] Fixed: "Permission denied" error thrown when loading the editor with developer tools open.
- #13574: [Edge] Fixed: "Permission denied" error thrown when opening editor dialog windows.
- #13441: [Edge] Fixed: The Clipboard plugin breaks the state of Undo commands after a paste.
- #13554: [Edge] Fixed: Paste dialog's iframe does not receive focus on show.
- #13440: [Edge] Fixed: Unable to paste a widget.
Other Changes:
- #13421: UX improvements to notifications in the Auto Embed plugin.
Fixed Issues:
- #13486: Fixed: The Upload Image plugin should log an error, not throw an error when upload URL is not set.
New Features:
-
#13304: Added support for passing DOM elements to
config.sharedSpaces
. Thanks to Undergrounder! - #13215: Added ability to cancel fetching a resource by the Embed plugins.
-
#13213: Added the
dialog#setState()
method and used it in the Embed dialog to indicate that a resource is being loaded. -
#13337: Added the
repository.onWidget()
method — a convenient way to listen to widget events through therepository. - #13214: Added support for pasting links that convert into embeddable resources on the fly.
Fixed Issues:
- #13334: Fixed: Error after nesting widgets and playing with undo/redo.
-
#13118: Fixed: The
editor.getSelectedHtml()
method throws an error when called in the source mode. - #13158: Fixed: Error after canceling a dialog when creating a widget.
- #13197: Fixed: Linked inline Enhanced Image alignment class is not transferred to the widget wrapper.
- #13199: Fixed: Semantic Embed does not support widget classes.
- #13003: Fixed: Anchors are uploaded when moving them by drag and drop.
- #13032: Fixed: When upload is done, notification update should be marked as important.
-
#13300: Fixed: The
internalCommit
argument in the Image dialog seems to be never used. - #13036: Fixed: Notifications are moved 10px to the right.
- #13280: [IE8] Fixed: Undo after inline widget drag&drop throws an error.
- #13186: Fixed: Content dropped into a nested editable is not filtered by Advanced Content Filter.
- #13140: Fixed: Error thrown when dropping a block widget right after itself.
- #13176: [IE8] Fixed: Errors on drag&drop of embed widgets.
- #13015: Fixed: Dropping an image file on Enhanced Image causes a page reload.
- #13080: Fixed: Ugly notification shown when the response contains HTML content.
- #13011: [IE8] Fixed: Anchors are duplicated on drag&drop in specific locations.
-
#13105: Fixed: Various issues related to
CKEDITOR.tools.htmlEncode()
andCKEDITOR.tools.htmlDecode()
methods. - #11976: [Chrome] Fixed: Copy&paste and drag&drop lists from Microsoft Word.
-
#13128: Fixed: Various issues with cloning element IDs:
- Fixed the default behavior of
range.cloneContents()
andrange.extractContents()
methods which now clone IDs similarly to their native counterparts. - Added
cloneId
arguments to the above methods,range.splitBlock()
andelement.breakParent()
. Mind the default values and special behavior in theextractContents()
method! - Fixed issues where IDs were lost on copy&paste and drag&drop.
- Fixed the default behavior of
- Toolbar configurators:
- #13185: Fixed: Wrong position of the suggestion box if there is not enough space below the caret.
- #13138: Fixed: The "Toggle empty elements" button label is unclear.
- #13136: Fixed: Autocompleter is far too intrusive.
- #13133: Fixed: Tab leaves the editor.
-
#13173: Fixed:
config.removeButtons
is ignored by the advanced toolbar configurator.
Other Changes:
- #13119: Improved compatibility of editor skins (Moono and Kama) with external web page style sheets.
- Toolbar configurators:
-
#13316: Made
CKEDITOR.env.isCompatible
a blacklist rather than a whitelist. More about the change in theBrowser Compatibility guide. -
#13398: Renamed
CKEDITOR.fileTools.UploadsRepository
toCKEDITOR.fileTools.UploadRepository
and changed all related properties. - #13279: Reviewed CSS vendor prefixes.
-
#13454: Removed unused
lang.image.alertUrl
token from the Image plugin.
Security Updates:
-
Fixed XSS vulnerability in the HTML parser reported by Dheeraj Joshi and Prem Kumar.
Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode.
An upgrade is highly recommended!
Fixed Issues:
- #12899: Fixed: Corrected wrong tag ending for horizontal box definition in the Dialog User Interface plugin. Thanks to mizafish!
- #13254: Fixed: Cannot outdent block after indent when using the Div Editing Area plugin. Thanks to Jonathan Cottrill!
-
#13268: Fixed: Documentation for
CKEDITOR.dom.text
is incorrect. Thanks to Ben Kiefer! - #12739: Fixed: Link loses inline styles when edited without the Advanced Tab for Dialogs plugin. Thanks to Віталій Крутько!
-
#13292: Fixed: Protection pattern does not work in attribute in self-closing elements with no space before
/>
. Thanks to Віталій Крутько! -
PR#192: Fixed: Variable name typo in the Dialog User Interface plugin which caused
CKEDITOR.ui.dialog.radio
validation to not work. Thanks to Florian Ludwig! -
#13232: [Safari] Fixed: The
element.appendText()
method does not work properly for empty elements. -
#13233: Fixed: HTMLDataProcessor can process
foo:href
attributes. -
#12796: Fixed: The Indent List plugin unwraps parent
<li>
elements. Thanks to Andrew Stucki! -
#12885: Added missing
editor.getData()
parameter documentation. - #11982: Fixed: Bullet added in a wrong position after the Enter key is pressed in a nested list.
- #13027: Fixed: Keyboard navigation in dialog windows with multiple tabs not following IBM CI 162 instructions orARIA Authoring Practices.
- #12256: Fixed: Basic styles classes are lost when pasting from Microsoft Word if basic styles were configured to use classes.
- #12729: Fixed: Incorrect structure created when merging a block into a list item on Backspace and Delete.
- #13031: [Firefox] Fixed: No more line breaks in source view since Firefox 36.
- #13131: Fixed: The Code Snippet plugin cannot be used without the IFrame Editing Area plugin.
-
#9086: Fixed: Invalid ARIA property used on paste area
<iframe>
. - #13164: Fixed: Error when inserting a hidden field.
-
#13155: Fixed: Incorrect Line Utilities positioning when
<body>
has a margin. - #13351: Fixed: Link lost when editing a linked image with the Link tab disabled. This also fixed a bug when inserting an image into a fully selected link would throw an error (#12847).
- #13344: [WebKit/Blink] Fixed: It is possible to remove or change editor content in read-only mode.
Other Changes:
-
#12844 and #13103: Upgraded the testing environment to Bender.js
0.2.3
. -
#12930: Because of licensing issues,
truncated-mathjax/
is now removed from thetests/
directory. Nowbender.config.mathJaxLibPath
must be configured manually in order to run Mathematical Formulas plugin tests. - #13266: Added more shades of gray in the Color Dialog window. Thanks to mizafish!