#1703: Introduced the Mentions plugin providing smart completion feature for custom text matches based on user input starting with a chosen marker character.
#1746: Introduced the Emoji plugin providing completion feature for emoji ideograms.
#1724: Added an option to the getClientRect() function allowing to retrieve an absolute bounding rectangle of the element, i.e. a position relative to the upper-left corner of the topmost viewport.
#1498 : Added a new getClientRects() method to CKEDITOR.dom.range. It returns a list of rectangles for each selected element.
Language dictionary update: Added support for the Uzbek Latin language.
Languages no longer supported as additional languages: Manx - Isle of Man (gv_GB) and Interlingua (ia_XR).
Extended and improved language dictionaries: Georgian and Swedish. Also added the missing word "Ensure" to the American, British and Canada English language.
#141 Fixed: SCAYT throws "Uncaught Error: Error in RangyWrappedRange module: createRange(): Parameter must be a Window object or DOM node".
#153 [Chrome] Fixed: Correcting a word in the widget in SCAYT moves focus to another editable.
#155 [IE8] Fixed: SCAYT throws an error and does not work.
Fixed: After some text is dragged and dropped, the markup is not refreshed for grammar problems in SCAYT.
Fixed: Request to FastCGI fails when the user tries to replace a word with non-English characters with a proper suggestion in WSC.
[Firefox] Fixed: Ctrl+Z removes focus in SCAYT.
Grammar support for default languages was improved.
New application source URL was added in SCAYT.
Removed green marks and legend related to grammar-supported languages in the Languages tab of SCAYT. Grammar is now supported for almost all the anguages in the list for an additional fee.
Fixed: JavaScript error in the console: "Cannot read property 'split' of undefined" in SCAYT and WSC.
[IE10] Fixed: Markup is not set for a specific case in SCAYT.
Fixed: Accessibility issue: No alt attribute for the logo image in the About tab of SCAYT.
Issue summary: It was possible to execute XSS inside CKEditor using the <img> tag and specially crafted HTML. Please note that the default presets (Basic/Standard/Full) do not include this plugin, so you are only at risk if you made a custom build and enabled this plugin.
#932: Introduced Easy Image feature for inserting images that are automatically rescaled, optimized, responsive and delivered through a blazing-fast CDN. Three new plugins were added to support it:
#11064: [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the Select All plugin.
#14755: [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.
#16624: Fixed: Improved the Color Button plugin which will now normalize the CSS background property if it only contains a color value. This fixes missing background colors when using Paste from Word.
#16600: [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.
#12541: Added the Upload File plugin that lets you upload a file by drag&dropping it into the editor content.
#14449: Introduced the Balloon Panel plugin that lets you create stylish floating UI elements for the editor.
#12077: Added support for the HTML5 download attribute in link (<a>) elements. Selecting the "Force Download" checkbox in the Link dialog will cause the linked file to be downloaded automatically. Thanks to sbusse!
#13518: Introduced the additionalRequestParameters property for file uploads to make it possible to send additional information about the uploaded file to the server.
[Severity: minor] Fixed the target="_blank" vulnerability reported by James Gaskell.
Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.