Send FormData with XHR – This provides an easy way to post data to an endpoint expecting multipart/form-data. (But uploading binary files with Blob is not supported yet – use ArrayBuffer).

requestAnimationFrame() for UI – Complimenting the earlier addition of setTimeout() APIs, this new global API makes it easier to use certain UI libraries such as "react-virtualized" with
fewer polyfills. These APIs do not allow plugins to control animations in the XD document – plugins can still only modify the document as part of an atomic operation while the UI is blocked.
But this API does allow for simple animations in your plugin's dialog UI (e.g. a progress indicator).

Breaking Changes

develop folder location change (Mac only) – The "Adobe XD CC" folder was renamed to just "Adobe XD." The contents of the develop folder will automatically be moved to the new location
the first time you launch XD 18.

Advance warning: In the near future XD's scenegraph will add at least one new subclass of GraphicNode (i.e. a new leaf node shape type). Always be sure to have a default case for unknown
scenenode types/classes when traversing the scenegraph.

User-facing plugin features

Plugin listing displays new fields – The summary, languages, and website fields that were recently added to the manifest
are now displayed in the Discover/Manage Plugins UI.

Known Issues

No new known issues. See the Known Issues page for a comprehensive list of existing known issues.

Change Log

XD Release 17.0.12 (March 2019)

New API Features

Select & edit across groups: Users can now select multiple items that are in different containers at the same time. This has several effects on plugins:

Do not assume all selected items have the same parent node. Previously, this was already true in certain special cases – for example, users could select items that are the immediate
children of several different artboards. Now, it can happen in far more cases, so plugins must take extra care to avoid any assumptions about node parents.

Wider "edit scope" surrounding the selection. Previously, plugins could edit the selected nodes and all their siblings (with a slightly broader scope as a special case in the "root edit
context"). Now, plugins can edit any nodes in the subtree of the common ancestor of all the selected nodes, if those nodes are connected to the common ancestor through a parent chain
consisting entirely of plain Groups (or Artboards). See the edit context documentation for details and examples.

Plugins still cannot edit globally across the entire document at once, even though in very simple testing it may _appear that this works. Non-Group containers act as blockades that
the edit scope cannot cross - if the selection is outside such a container, you cannot edit inside it; and if the selection is inside such a container, you cannot edit outside it.

Additional manifest fields required for publishing: As of March 5, submitting a new or updated plugin for the in-app plugins listing requires providing new summary, author, and languages
fields, as well as several additional icon sizes. See manifest documentation.

Breaking Changes

No breaking changes.

Fixes and improvements

No other API changes.

User-facing plugin features

Plugin update notifications: Users see an in-app notification when any installed plugins have a newer version available in the plugins listing.

Known Issues

No new known issues. See the Known Issues page for a comprehensive list of existing known issues.

XD Release 16.0.12 (February 2019)

New API Features

setTimeout() & friends:setTimeout(), setInterval(), setImmediate(), and the corresponding clear*() methods are now available as global APIs. These APIs do not allow plugins to
control animations in the XD document – plugins can still only modify the document as part of an atomic operation while the UI is blocked. But timeout APIs do allow for simple animations in
your plugin's dialog UI (e.g. a progress indicator), "debouncing" user input, etc. – and they help support web frameworks like React with fewer polyfills needed.

Breaking Changes

No breaking changes.

Fixes and improvements

No other API changes.

Known Issues

No new known issues. See the Known Issues page for a comprehensive list of existing known issues.

Breaking Changes

No breaking changes.

Fixes and improvements

No other API changes.

User-facing plugin features

Disable plugins: Temporarily disable a plugin without uninstalling it or erasing its data. Choose Plugins > Manage Plugins, then click the "..." menu for a specific plugin and choose Disable.
A disabled plugin does not appear anywhere in the XD UI other than the Manage Plugins view, and none of its code is loaded or run.

Force stop: If a plugin operation is blocking XD for more than one second with no UI shown, the user sees a spinner with the option to force-stop the plugin. This does not stop the plugin's code
from running, but it reverts any partially-completed changes to the document and revokes the plugin from being the foreground operation (unblocking the XD UI and blocking the plugin from making
document changes until it's invoked again by the user). If the plugin does eventually reawaken and try to continue running code from earlier, any attempts to modify the document will throw an error.

Known Issues

New: Plugins can modify the Assets panel contents while running in the background. Do not rely on this - in a future release, it will be blocked.