Bug 126981 - FILESAVE DOCX Embedded Visio object doesn't survive roundtrip
Summary: FILESAVE DOCX Embedded Visio object doesn't survive roundtrip
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
4.0.0.3 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: filter:docx, filter:visio
Depends on:
Blocks: DOCX-OLE-Objects Visio
  Show dependency treegraph
 
Reported: 2019-08-16 23:01 UTC by Aron Budea
Modified: 2020-03-24 09:01 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Sample DOCX with embedded Visio object (44.58 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2019-08-16 23:01 UTC, Aron Budea
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aron Budea 2019-08-16 23:01:38 UTC
Created attachment 153449 [details]
Sample DOCX with embedded Visio object

Attached DOCX contains a simple Visio drawing (inside the zip it's word\embeddings\Microsoft_Visio_Drawing1.vsdx). When opened in Word and clicking on the object, it clearly behaves as an embedded object (upon double-clicking it'll complain if Visio isn't installed, that's expected).

- Open and save it in Writer, then reopen in Word.

=> The object appears as a picture in Word (Picture tools ribbon shows on toolbar).
The visio file is still there, but now it's word\embeddings\oleObject1.bin.

Observed using LO 6.4.0.0.alpha0+ (d3d13140f0036c53aa74820b41acfeffa3572168), 5.0.0.5 / Windows 7.
In 4.0.0.3 even the embedded file gets lost.
Comment 1 Justin L 2020-03-24 09:01:12 UTC
I think a good place to start is going to be reviewing https://cgit.freedesktop.org/libreoffice/core/commit/?id=d60398ff5b42ff77a4002dcd13b7fb8c9a73eade

specifically
+// TODO: this is probably a sub-optimal approach: ideally the media type
+// of the stream from [Content_Types].xml should be stored somewhere for this
+// purpose, but currently the media type of all OLE streams in the storage is
+// just "application/vnd.sun.star.oleobject"