Release Notes

2021-11-27 Confluence Server 7.13.0 - 7.17.x Confluence Data Center 7.13.0 - 7.17.x

New Features

  • [AC-29] AC Macros: Load codeblocks async not blocking page load

  • [AC-32] Remove deprecated download servlets (Breaking Change)

  • [AC-33] Confluence 7.16 and 7.17 Compatibility

Fixed Bugs

  • [AC-30] Highlight Bidi control characters in codeboxes (CVE-2021-42574)

  • [AC-31] Remove newline on start of download endpoints (Breaking Change)

Breaking Changes

  • There are several breaking changes regarding the REST API - summarized:

    • All Endpoints: GET /rest/advancedcodeblocks/1/*

      • URL param pageId is now contentId

    • XML/JSON List Endpoint: GET /rest/advancedcodeblocks/1/download_list/*

      • <page> is now <content>
        <page>                        ― CHANGE    ➞ <content>  
          <pageId>123</pageId>        ― CHANGE    ➞   <contentId>123</contentId>
          <pageName>Bar</pageName>    ― CHANGE    ➞   <contentTitle>Bar</contentTitle>
          <spaceKey>FOO</pageId>      ― unchanged ➞   <spaceKey>FOO</spaceKey>
          <macroId>aa-bb-cc</macroId> ― unchanged ➞   <macroId>aa-bb-cc</macroId>
                                      ― NEW       ➞   <contentType>page</contentType>

    • Download block Endpoint: GET /rest/advancedcodeblocks/1/download_code/plain_text

      • Removed newline on start of downloaded file
      • Hidden chars are not removed anymore

    • Removed deprecated Servlets: GET /plugins/servlet/advanced-codeblock-macro-*

    See the 4.0.0 REST API documentation for all details.


Release Summary

Since performance is getting more an more important regarding increased sizes of Confluence Data Center installations, we decided to improve the overall app macro performance.

Our goal was to not block the Confluence page load and make it as fast as possible. This sounds like a quite simple thing to do, but there were a lot of obstacles to take.

The main improvements are:

  • Macro data is now loaded asynchronously via REST after the Confluence page has fully loaded.

  • Source code highlighting works asynchronously in a separate browser processs (Web Workers API). In earlier versions highlighting source code could freeze the browser for a short time when highlighting big files.

  • All frontend resources are updated to their latest versions and code-highlighting is only performed on user interaction, lowering the browser CPU usage a lot. Before code that was not visible to the user was highlighted on page load. Now only for macros with "expand first block" setting the highlighting is performed on page load.

  • We removed the detect programming language feature from the code highlighter. That feature could take up to 3 seconds to guess the language. We decided to remove this feature to be able to use other highlighting libraries in the future that are even faster. Furthermore was the guessing feature mostly not producing good results anyway.

  • The macros now fully work in blog posts and comments. Before they only fully worked inside normal pages.

Even though we had to introduce some breaking changes, we think that it was now time to rework the app completely to keep up the quality and performance required from a modern Confluence app. Therefore some technical debt had to get dealt with which produced the breaking changes.