Bug 84571 - headless libreoffice renders progress bar ...
Summary: headless libreoffice renders progress bar ...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Android Viewer (show other bugs)
Version:
(earliest affected)
4.3.0.2 rc
Hardware: Other All
: low minor
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: mabAndroid File-Progress-Bar
  Show dependency treegraph
 
Reported: 2014-10-01 23:59 UTC by Michael Meeks
Modified: 2022-05-19 14:00 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:
Regression By:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Meeks 2014-10-01 23:59:12 UTC
Just debugging some oddness is the svp backend, and I was amused to see that a headless LibreOffice still creates (and/or renders?) a progress bar for document loading:

#0  SvpSalGraphics::drawRect (this=0xfc11d0, nX=0, nY=0, nWidth=1, nHeight=1) at /data/opt/libreoffice/master/vcl/headless/svpgdi.cxx:416
#1  0x00007fffebab712d in SalGraphics::DrawRect (this=0xfc11d0, nX=0, nY=0, nWidth=1, nHeight=1, pOutDev=pOutDev@entry=0xfc09d0)
    at /data/opt/libreoffice/master/vcl/source/gdi/salgdilayout.cxx:410
#2  0x00007fffeb9a35c3 in OutputDevice::DrawRect (this=this@entry=0xfc09d0, rRect=Rectangle = {...})
    at /data/opt/libreoffice/master/vcl/source/outdev/rect.cxx:59
#3  0x00007fffeb9aade8 in OutputDevice::DrawColorWallpaper (this=0xfc09d0, nX=0, nY=0, nWidth=1, nHeight=1, rWallpaper=...)
    at /data/opt/libreoffice/master/vcl/source/outdev/wallpaper.cxx:74
#4  0x00007fffeb9abd06 in OutputDevice::Erase (this=0xfc09d0) at /data/opt/libreoffice/master/vcl/source/outdev/wallpaper.cxx:90
#5  0x00007fffebac1c5c in VirtualDevice::ImplInitVirDev (this=this@entry=0xfc09d0, pOutDev=<optimized out>, pOutDev@entry=0xfc00d0, 
    nDX=nDX@entry=1, nDY=nDY@entry=1, nBitCount=nBitCount@entry=0, pData=pData@entry=0x0)
    at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:201
#6  0x00007fffebac1dce in VirtualDevice::VirtualDevice (this=0xfc09d0, rCompDev=..., nBitCount=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:232
#7  0x00007fffeb8cbf86 in StatusBar::ImplInit (this=this@entry=0xfc00d0, pParent=pParent@entry=0xe94b40, nStyle=nStyle@entry=16448)
    at /data/opt/libreoffice/master/vcl/source/window/status.cxx:126
#8  0x00007fffeb8cc128 in StatusBar::StatusBar (this=0xfc00d0, pParent=0xe94b40, nStyle=16448)
    at /data/opt/libreoffice/master/vcl/source/window/status.cxx:148
#9  0x00007fffe29c4239 in framework::LayoutManager::implts_createProgressBar (this=this@entry=0x7fffe1728f20)
    at /data/opt/libreoffice/master/framework/source/layoutmanager/layoutmanager.cxx:893
#10 0x00007fffe29c7b53 in framework::LayoutManager::createElement (this=0x7fffe1728f20, aName="private:resource/progressbar/progressbar")
    at /data/opt/libreoffice/master/framework/source/layoutmanager/layoutmanager.cxx:1515
#11 0x00007fffe298e8d0 in framework::StatusIndicatorFactory::impl_createProgress (this=this@entry=0x7fffe0928848)
    at /data/opt/libreoffice/master/framework/source/helper/statusindicatorfactory.cxx:417
#12 0x00007fffe298f238 in framework::StatusIndicatorFactory::initialize (this=0x7fffe0928848, lArguments=...)
    at /data/opt/libreoffice/master/framework/source/helper/statusindicatorfactory.cxx:102
#13 0x00007fffee88c662 in cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments (this=<optimized out>, context=
    uno::Reference to (cppu::ComponentContext *) 0x7fffe35d88a8, singletonRequest=singletonRequest@entry=false, arguments=
    uno::Sequence of length 3 = {...}) at /data/opt/libreoffice/master/cppuhelper/source/servicemanager.cxx:712
#14 0x00007fffee8912c8 in cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext (this=<optimized out>, ServiceSpecifier=..., 
    Arguments=uno::Sequence of length 3 = {...}, Context=uno::Reference to (cppu::ComponentContext *) 0x7fffe35d88a8)
    at /data/opt/libreoffice/master/cppuhelper/source/servicemanager.cxx:1036
#15 0x00007fffe2a2c939 in com::sun::star::task::StatusIndicatorFactory::createWithFrame (
    the_context=uno::Reference to (cppu::ComponentContext *) 0x7fffe35d88a8, 
    Frame=uno::Reference to ((anonymous namespace)::Frame *) 0x7fffe2f33870, DisableReschedule=DisableReschedule@entry=0 '\000', 
    AllowParentShow=AllowParentShow@entry=1 '\001')
    at /data/opt/libreoffice/master/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/task/StatusIndicatorFactory.hpp:51
#16 0x00007fffe2a243f3 in (anonymous namespace)::Frame::initialize (this=0x7fffe2f33848, xWindow=...)
    at /data/opt/libreoffice/master/framework/source/services/frame.cxx:843
#17 0x00007fffe2a519ca in implts_createFrame (sName="", xContainerWindow=uno::Reference to (VCLXTopWindow *) 0x7fffe092c6d8, 
    xParentFrame=<synthetic pointer>, this=<optimized out>) at /data/opt/libreoffice/master/framework/source/services/taskcreatorsrv.cxx:293
#18 (anonymous namespace)::TaskCreatorService::createInstanceWithArguments (this=0x7fffe2f90dc0, lArguments=...)
    at /data/opt/libreoffice/master/framework/source/services/taskcreatorsrv.cxx:188
#19 0x00007fffe296b59e in framework::TaskCreator::createTask (this=this@entry=0x7ffffffbd3d0, sName="_blank", bVisible=bVisible@entry=false)
    at /data/opt/libreoffice/master/framework/source/classes/taskcreator.cxx:114
#20 0x00007fffe2a1a863 in framework::Desktop::findFrame (this=0x7fffe2fb4530, sTargetFrameName="_blank", nSearchFlags=0)
    at /data/opt/libreoffice/master/framework/source/services/desktop.cxx:921
#21 0x00007fffe29f2635 in framework::LoadEnv::impl_loadContent (this=this@entry=0x7ffffffbd720)
    at /data/opt/libreoffice/master/framework/source/loadenv/loadenv.cxx:1029
#22 0x00007fffe29f2bc8 in framework::LoadEnv::startLoading (this=this@entry=0x7ffffffbd720)
    at /data/opt/libreoffice/master/framework/source/loadenv/loadenv.cxx:383
#23 0x00007fffe29f2e70 in framework::LoadEnv::loadComponentFromURL (xLoader=uno::Reference to (framework::Desktop *) 0x7fffe2fb45a8, 
    xContext=uno::Reference to (cppu::ComponentContext *) 0x7fffe35d88a8, 
    sURL="file:///data/opt/libreoffice/testfiles/CP41vsAOO401/groupshape.rtf", sTarget="_blank", nFlags=nFlags@entry=0, 
    lArgs=empty uno::Sequence) at /data/opt/libreoffice/master/framework/source/loadenv/loadenv.cxx:164
#24 0x00007fffe2a1376e in framework::Desktop::loadComponentFromURL (this=0x7fffe2fb4530, 
    sURL="file:///data/opt/libreoffice/testfiles/CP41vsAOO401/groupshape.rtf", sTargetFrameName="_blank", nSearchFlags=0, 
    lArguments=empty uno::Sequence) at /data/opt/libreoffice/master/framework/source/services/desktop.cxx:567
#25 0x00007fffef4b735a in lo_documentLoad (pThis=0x62eeb0, pURL=<optimized out>) at /data/opt/libreoffice/master/desktop/source/lib/init.cxx:300
#26 0x0000000000400d8b in documentLoad (pUrl=<optimized out>, this=0x6384a0)
    at /data/opt/libreoffice/master/include/LibreOfficeKit/LibreOfficeKit.hxx:110
#27 main (argc=<optimized out>, argv=0x7fffffffdcb8) at /data/opt/libreoffice/master/libreofficekit/qa/tilebench/tilebench.cxx:69

...

Even if it is only 1x1 pixel ;-)
Comment 1 Michael Meeks 2014-10-01 23:59:52 UTC
Easy to reproduce, just set a breakpoint and run tilebench or somesuch =)
Comment 2 Michael Meeks 2014-10-02 00:07:30 UTC
If only the window stayed small:

#0  SvpSalGraphics::drawRect (this=0xfbf110, nX=0, nY=<optimized out>, nWidth=<optimized out>, nHeight=<optimized out>)
    at /data/opt/libreoffice/master/vcl/headless/svpgdi.cxx:425
#1  0x00007fffebab712d in SalGraphics::DrawRect (this=0xfbf110, nX=0, nY=0, nWidth=1920, nHeight=1024, pOutDev=pOutDev@entry=0xe94d80)
    at /data/opt/libreoffice/master/vcl/source/gdi/salgdilayout.cxx:410

Note nWidth & nHeight.

#2  0x00007fffeb9a35c3 in OutputDevice::DrawRect (this=this@entry=0xe94d80, rRect=Rectangle = {...})
    at /data/opt/libreoffice/master/vcl/source/outdev/rect.cxx:59
#3  0x00007fffeb9aade8 in OutputDevice::DrawColorWallpaper (this=0xe94d80, nX=0, nY=0, nWidth=1920, nHeight=1024, rWallpaper=...)
    at /data/opt/libreoffice/master/vcl/source/outdev/wallpaper.cxx:74
#4  0x00007fffeb853cf0 in vcl::Window::Erase (this=0xe94d80) at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:1180
#5  0x00007fffeb851d3c in vcl::Window::PushPaintHelper (this=0xe94d80, pHelper=pHelper@entry=0x7ffffffbc3d0)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:166
#6  0x00007fffeb851e5c in PaintHelper::DoPaint (this=0x7ffffffbc3d0, pRegion=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:123
#7  0x00007fffeb85207b in vcl::Window::ImplCallPaint (this=this@entry=0xe94d80, pRegion=0x116c5d0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:259
#8  0x00007fffeb85214a in PaintHelper::~PaintHelper (this=0x7ffffffbc4a0, __in_chrg=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:206
#9  0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0xe956a0, pRegion=pRegion@entry=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
#10 0x00007fffeb85364b in vcl::Window::Update (this=this@entry=0xfc03e0) at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:988
#11 0x00007fffeb8cba5a in StatusBar::SetProgressValue (this=this@entry=0xfc03e0, nNewPercent=nNewPercent@entry=1)
    at /data/opt/libreoffice/master/vcl/source/window/status.cxx:1351

Going up the stack:

#9  0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0xe956a0, pRegion=pRegion@entry=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
...
(gdb) p *mpWindowImpl->mpFrame
Python Exception <type 'exceptions.ValueError'> Cannot find type std::list<vcl::DeletionListener*, std::allocator<vcl::DeletionListener*> >::_Node: 
$9 = (SvpSalFrame) {<SalFrame> = {<vcl::DeletionNotifier> = {m_aListeners = empty std::list}, 
    _vptr.SalFrame = 0x7fffeb71b870 <vtable for SvpSalFrame+16>, m_pWindow = 0xe956a0, m_pProc = 0x7fffeb8ffac0
     <ImplWindowFrameProc(vcl::Window*, SalFrame*, unsigned short, void const*)>, maGeometry = {nX = -897, nY = -257, nWidth = 1920, 
      nHeight = 1024, nLeftDecoration = 0, nTopDecoration = 0, nRightDecoration = 0, nBottomDecoration = 0, nDisplayScreenNumber = 0}}, 
  m_pInstance = 0xe0da80, m_pParent = 0x0, m_aChildren = empty std::list, m_nStyle = 14, m_bVisible = true,

Which seems somewhat outrageous =)
Comment 3 Michael Meeks 2014-10-02 00:13:00 UTC
Seems we're rendering a set of rulers as well:

#1  0x00007fffebab712d in SalGraphics::DrawRect (this=0x11d9370, nX=1, nY=0, nWidth=16, nHeight=978, pOutDev=pOutDev@entry=0x119c2f0)
    at /data/opt/libreoffice/master/vcl/source/gdi/salgdilayout.cxx:410
#2  0x00007fffeb9a35c3 in OutputDevice::DrawRect (this=this@entry=0x119c2f0, rRect=Rectangle = {...})
    at /data/opt/libreoffice/master/vcl/source/outdev/rect.cxx:59
#3  0x00007fffecf5aa62 in Ruler::ImplVDrawRect (this=this@entry=0x119c0d0, nX1=<optimized out>, nX1@entry=0, nY1=nY1@entry=1, 
    nX2=<optimized out>, nX2@entry=977, nY2=nY2@entry=16) at /data/opt/libreoffice/master/svtools/source/control/ruler.cxx:348
#4  0x00007fffecf5c735 in Ruler::ImplFormat (this=0x119c0d0) at /data/opt/libreoffice/master/svtools/source/control/ruler.cxx:1200
#5  0x00007fffecf5cd15 in Ruler::ImplDraw (this=this@entry=0x119c0d0) at /data/opt/libreoffice/master/svtools/source/control/ruler.cxx:1307
#6  0x00007fffecf5cfc9 in Ruler::Paint (this=0x119c0d0) at /data/opt/libreoffice/master/svtools/source/control/ruler.cxx:2105
#7  0x00007fffeb85207b in vcl::Window::ImplCallPaint (this=this@entry=0x119c0d0, pRegion=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:259
#8  0x00007fffeb85214a in PaintHelper::~PaintHelper (this=0x7ffffffbbfb0, __in_chrg=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:206
#9  0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0x11cf3f0, pRegion=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
#10 0x00007fffeb85214a in PaintHelper::~PaintHelper (this=0x7ffffffbc080, __in_chrg=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:206
#11 0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0x11e1be0, pRegion=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
#12 0x00007fffeb85214a in PaintHelper::~PaintHelper (this=0x7ffffffbc150, __in_chrg=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:206
#13 0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0x11eb830, pRegion=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
#14 0x00007fffeb85214a in PaintHelper::~PaintHelper (this=0x7ffffffbc220, __in_chrg=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:206
#15 0x00007fffeb85202d in vcl::Window::ImplCallPaint (this=this@entry=0xe94b50, pRegion=pRegion@entry=0x0, nPaintFlags=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:261
#16 0x00007fffeb85364b in vcl::Window::Update (this=0x121ca90) at /data/opt/libreoffice/master/vcl/source/window/paint.cxx:988
#17 0x00007fffdb4a004f in SwView::SetVisArea (this=0x12178b0, rRect=..., bUpdateScrollbar=<optimized out>)
    at /data/opt/libreoffice/master/sw/source/uibase/uiview/viewport.cxx:256
#18 0x00007fffdb49e7c3 in SwView::CalcVisArea (this=this@entry=0x12178b0, rOutPixel=Size = {...})
    at /data/opt/libreoffice/master/sw/source/uibase/uiview/viewport.cxx:797
#19 0x00007fffdb49f0ea in SwView::OuterResizePixel (this=0x12178b0, rOfst=..., rSize=Size = {...})

=)
Comment 4 Michael Meeks 2014-10-02 00:13:40 UTC
And some sort of toolbox:

#1  0x00007fffebab712d in SalGraphics::DrawRect (this=0x1358c30, nX=627, nY=30, nWidth=3, nHeight=1, pOutDev=pOutDev@entry=0x13462b0)
    at /data/opt/libreoffice/master/vcl/source/gdi/salgdilayout.cxx:410
#2  0x00007fffeb9a35c3 in OutputDevice::DrawRect (this=this@entry=0x13462b0, rRect=Rectangle = {...})
    at /data/opt/libreoffice/master/vcl/source/outdev/rect.cxx:59
#3  0x00007fffeb8e3e77 in ImplDrawDropdownArrow (bRotate=false, bSetColor=<optimized out>, rDropDownRect=Rectangle = {...}, pBox=0x13462b0)
    at /data/opt/libreoffice/master/vcl/source/window/toolbox.cxx:2755
#4  ToolBox::ImplDrawItem (this=this@entry=0x13462b0, nPos=nPos@entry=34, nHighlight=<optimized out>, bPaint=bPaint@entry=false, 
    bLayout=bLayout@entry=false) at /data/opt/libreoffice/master/vcl/source/window/toolbox.cxx:3246
#5  0x00007fffeb8e4c58 in ToolBox::Paint (this=0x13462b0, rPaintRect=Rectangle = {...})
    at /data/opt/libreoffice/master/vcl/source/window/toolbox.cxx:4053
#6  0x00007fffeb85207b in vcl::Window::ImplCallPaint (this=this@entry=0x13462b0, pRegion=0x13e6030, nPaintFlags=<optimized out>)
Comment 5 QA Administrators 2016-02-21 08:37:32 UTC Comment hidden (obsolete)
Comment 6 QA Administrators 2017-03-06 15:53:48 UTC Comment hidden (obsolete)
Comment 7 QA Administrators 2019-12-03 14:22:12 UTC Comment hidden (obsolete)
Comment 8 QA Administrators 2021-12-03 04:32:37 UTC Comment hidden (obsolete)
Comment 9 Timur 2022-05-19 12:23:03 UTC
Hoc can this be tested? Why this blocks Android meta?
Comment 10 Michael Meeks 2022-05-19 14:00:26 UTC
You can test it as a developer, and/or just use tilebench to startup and render a document - and see what happens under the hood I guess, breakpoint or two in the debugger would show this easily.