Created attachment 134147 [details]
Document with charts
Open the attached document that contain many charts.
Scroll through it quickly right after it finished loading.
=> Strange placeholder images appear in place of charts (see screenshot, the quicker the scrolling the worse it looks).
After scrolling back and forth the placeholders are replaced with the charts themselves (happens almost right away in this document, but can take a while in more complex ones).
Reproduced with LO 5.4beta2, 220.127.116.11 / Windows 7. Not reproduced with 18.104.22.168. => regression
Bibisecting using repo bibisect-win32-5.3 pointed to the commit referenced below. Adding Cc: to Mohammed Abdul Azeem and Michael Meeks. Please take a look sometimes.
author Mohammed Abdul Azeem <email@example.com> 2016-09-25 05:36:32 (GMT)
committer Noel Grandin <firstname.lastname@example.org> 2016-09-25 13:22:51 (GMT)
"tdf#101935 and tdf#102201: This fixes both the bugs."
Created attachment 134148 [details]
Screenshot with placeholders
Note an additional detail:
Since the mentioned commit, when the charts are finally displayed after scrolling around, the document becomes modified and the save confirmation dialog appears upon closing.
Build ID: 08f6f9dded1b142b858c455da03319abac691655
CPU Threads: 4; OS Version: Linux 4.8; UI Render: default; VCL: gtk3;
Locale: ca-ES (ca_ES.UTF-8); Calc: group
Actually, this bug is caused by https://cgit.freedesktop.org/libreoffice/core/commit/?id=74844277cc2194c9e43f5bd7a6f78a9603da32f3
author Caolán McNamara <email@example.com> 2016-09-13 14:26:41 (GMT)
Specifically, by this modification:
- changeState( embed::EmbedStates::RUNNING );
+ awt::Size aOrigSize = getVisualAreaSize(nAspect);
+ if (aOrigSize != getVisualAreaSize(nAspect))
+ setVisualAreaSize(nAspect, aOrigSize);
We had some reference issues created by my earlier commit https://cgit.freedesktop.org/libreoffice/core/commit/?id=4ccd991f6a6ca680ac2b7513ab3853e1ba9c71a3
which was somehow masking this bug and it resurfaced when we fixed that in the commit mentioned in an above comment.
I'm adding Cc to Caolán McNamara, please do take a look.
Interesting research Mohammed - any thoughts Caolan ?
The reason I made those changes was CVE-2017-3157 and it changes the time that charts are updated from during load to after load so that the security setting/question for updating links can be used.
The specific change for restoring the size of the preview is because writer (at least, maybe others) will change the size of the object when activated, which is fine if the size is changed to the desired size afterwards as happened originally during initial load, but no use if the update happens after the load.
Hard to know what then goes wrong in chart land to get the weird placeholder problem, but if its just chart then chart has a long history of getting special cased in the embedded object code (e.g. #i103460# etc) so I can try special casing this
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":
Resolves: tdf#108643 don't restore orig size on first chart activate
It will be available in 6.0.0.
The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
Affected users are encouraged to test the fix and report feedback.