{"id":79872,"date":"2026-07-29T10:21:07","date_gmt":"2026-07-29T10:21:07","guid":{"rendered":"https:\/\/owncloud.com\/?p=79872"},"modified":"2026-07-29T10:21:07","modified_gmt":"2026-07-29T10:21:07","slug":"owncloud-web-12-5-0-collabora-save-as-support-and-a-new-html-editor-app","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/owncloud-web-12-5-0-collabora-save-as-support-and-a-new-html-editor-app\/","title":{"rendered":"ownCloud Web 12.5.0: Collabora Save-As Support and a New HTML Editor App"},"content":{"rendered":"<p><strong>Released:<\/strong> July 1, 2026 \u00b7 <strong>Repository:<\/strong> <a href=\"https:\/\/github.com\/owncloud\/web\" target=\"_blank\" rel=\"noopener\">owncloud\/web<\/a> \u00b7 <a href=\"https:\/\/github.com\/owncloud\/web\/releases\/tag\/v12.5.0\" target=\"_blank\" rel=\"noopener\">GitHub release page<\/a><\/p>\n<p>ownCloud Web 12.5.0 is a modest but useful release for oCIS deployments, headlined by a fix that closed a long-standing gap in the Collabora Online integration: documents can now actually be saved as a copy or exported to another format from inside the editor. Alongside that, admins get an ownCloud-branded login background out of the box, users get a new lightweight HTML editor app, and there are three targeted bugfixes covering PDF viewing on iOS, focus styling, and app resolution by MIME type.<\/p>\n<p>Note: this is the last standalone owncloud\/web release. On 14 July 2026, <a href=\"https:\/\/owncloud.com\/blogs\/owncloud-web-and-ocis-are-now-one-codebase\/\">ownCloud Web and oCIS became one codebase, all under Apache-2.0<\/a>, with the web frontend now living inside owncloud\/ocis under web\/<\/p>\n<h2>Enhancements<\/h2>\n<p><strong>Collabora Online Save-As support (headline change)<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13906\" target=\"_blank\" rel=\"noopener\"><strong>#13906<\/strong><\/a><strong> \u2014 <\/strong><a href=\"https:\/\/www.collaboraonline.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Collabora Online<\/strong><\/a><strong> Save-As now works.<\/strong> Previously, choosing &#8222;Save As&#8220; inside a document opened via Collabora did nothing. Collabora exposes Save-As as a host-delegated operation (it posts a UI_SaveAs message and waits for a reply via Action_SaveAs), but the app-provider integration never opened that postMessage channel. The integration now announces itself with Host_PostmessageReady once the iframe loads, requests the grouped Save-As control, and replies correctly when the user names the copy. Since the collaboration service already implements <a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-365\/cloud-storage-partner-program\/online\/\" target=\"_blank\" rel=\"noopener\">WOPI<\/a> PutRelativeFile, the copy is written into the same oCIS space respecting the user&#8217;s permissions. The chosen file extension controls the export format (for example .docx \u2192 PDF or ODT, .xlsx \u2192 ODS, .pptx \u2192 PDF).<\/li>\n<\/ul>\n<p><strong>Branded login background<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13875\" target=\"_blank\" rel=\"noopener\"><strong>#13875<\/strong><\/a><strong> \u2014 Default login page now uses ownCloud&#8217;s own branding background<\/strong> rather than a generic placeholder. Applied through a new CSS custom property (&#8211;oc-login-background-image) so future branding updates only need to touch one value. The actual image still comes from backgroundImg in theme.json and remains fully customisable.<\/li>\n<\/ul>\n<p><strong>New bundled app: HTML editor<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13895\" target=\"_blank\" rel=\"noopener\"><strong>#13895<\/strong><\/a><strong> \u2014 <\/strong>web-app-html-editor Opens .html, .htm, and .xhtml files in a <a href=\"https:\/\/codemirror.net\/\" target=\"_blank\" rel=\"noopener\">CodeMirror<\/a>-based source editor with a live preview. Modes: Editor \/ Split \/ Preview. File load and save handled over WebDAV by the standard app wrapper. The document renders inside a strictly sandboxed iframe with an opaque origin and no network egress. Follows the same lightweight registration pattern as the existing text editor.<\/li>\n<\/ul>\n<p><strong>Documentation tooling<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13894\" target=\"_blank\" rel=\"noopener\"><strong>#13894<\/strong><\/a><strong> \u2014 <\/strong><a href=\"https:\/\/playwright.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>Playwright<\/strong><\/a><strong>-based documentation screenshot tool added.<\/strong> Drives the Web UI through scripted &#8222;tours&#8220; and captures captioned screenshots plus a manifest for each step. Aimed at keeping end-user documentation screenshots in sync with the actual product rather than going stale after UI changes. Not user-facing, but a real quality-of-life win for the documentation team and anyone who&#8217;s ever had to spot the difference between docs and reality.<\/li>\n<\/ul>\n<h2>Bugfixes<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13888\" target=\"_blank\" rel=\"noopener\"><strong>#13888<\/strong><\/a><strong> \u2014 <\/strong>\/external<strong> redirect now resolves the correct app by MIME type.<\/strong> Previously the redirect picked an arbitrary app provider when no explicit app query parameter was present, which could route a file to an app that didn&#8217;t support its MIME type and surface a generic &#8222;app not found&#8220; error. The redirect now resolves the app from the file&#8217;s actual MIME type, prefers the configured default, and shows an explicit error instead of guessing wrong.<\/li>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13797\" target=\"_blank\" rel=\"noopener\"><strong>#13797<\/strong><\/a><strong> \u2014 PDF handling on iOS and iPadOS improved.<\/strong> The built-in PDF viewer had known issues on iOS and iPadOS, so Web now shows a button to open PDFs in the browser instead of the native viewer as a workaround.<\/li>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13887\" target=\"_blank\" rel=\"noopener\"><strong>#13887<\/strong><\/a><strong> \u2014 <\/strong>OcButton<strong> danger-filled focus colour fixed.<\/strong> The variant was not applying the correct text colour when focused via keyboard. Fixed.<\/li>\n<\/ul>\n<h2><strong>Security (one fix)<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/owncloud\/web\/pull\/13924\" target=\"_blank\" rel=\"noopener\"><strong>#13924<\/strong><\/a><strong> \u2014 <\/strong>.psec<strong> file URL validation added.<\/strong> The URL stored inside a .psec file (used for password-protected folder views) was previously loaded directly as the source of the folder view iframe without validation. The URL is now checked to ensure it uses a safe scheme and points at the configured ownCloud server before being loaded. Vulnerability class: unsafe URL loading with potential for redirect abuse or arbitrary iframe source injection.<\/li>\n<\/ul>\n<h2>Upgrade notes<\/h2>\n<p>No configuration migration is required for this release. If your deployment customizes the login page background, note that theming now flows through the &#8211;oc-login-background-image CSS variable in addition to theme.json, so review custom themes to make sure the new default does not need to be overridden. If you rely on the \/external redirect for integrations, double-check that file associations resolve to the intended app now that MIME-type resolution has changed.<\/p>\n<h2>Get it<\/h2>\n<p>Full changelog, PR links, and assets are on the <a href=\"https:\/\/github.com\/owncloud\/web\/releases\/tag\/v12.5.0\" target=\"_blank\" rel=\"noopener\">GitHub release page for v12.5.0<\/a>.<br \/>\nNote: this is the last standalone owncloud\/web release. On 14 July 2026, <a href=\"https:\/\/owncloud.com\/blogs\/owncloud-web-and-ocis-are-now-one-codebase\/\">ownCloud Web and oCIS became one codebase, all under Apache-2.0<\/a>, with the web frontend now living inside owncloud\/ocis under web\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ownCloud Web 12.5.0 is out. Save-As inside Collabora Online now actually works (PR #13906 closes a long-standing gap in the postMessage handshake). Plus a new lightweight HTML editor app for .html, .htm, and .xhtml files, an ownCloud-branded default login background, and a Playwright-driven screenshot tool for docs. Four bugfixes underneath, including a security-relevant .psec URL validation fix.<\/p>\n","protected":false},"author":7,"featured_media":79873,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[337,509,339,340,55,354,360],"tags":[],"class_list":["post-79872","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-foss","category-infinite-scale","category-owncloud","category-owncloud-client","category-owncloud-product","category-release","category-security"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=79872"}],"version-history":[{"count":1,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79872\/revisions"}],"predecessor-version":[{"id":79874,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79872\/revisions\/79874"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/79873"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=79872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=79872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=79872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}