Closed Bug 93820 Opened 24 years ago Closed 22 years ago

Moz Opacity does not work properly under linux

Categories

(Core Graveyard :: GFX: Gtk, enhancement)

x86
Linux
enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Future

People

(Reporter: colinp, Assigned: kmcclusk)

References

()

Details

(Keywords: helpwanted)

This web page displays great under win32 (the images slowly fade in and out). Under linux the images only appear at 100% opacity.
Keywords: oeone
Adding CC's. Talked to Joe about this when I was at Netscape. Joe, do you think there might be a chance that something can be done about this? It would be really cool to have those semi-transparent menu's we talked about. Who else might be able to help with this one?
This is a linux specific rendering problem, not a DOM problem. Reassigning.
Assignee: jst → kmcclusk
Component: DOM Mozilla Extensions → Compositor
QA Contact: lchiang → petersen
Status: NEW → ASSIGNED
Target Milestone: --- → Future
Severity: normal → enhancement
A question. Why is platform parity with Win32 for Linux considered an enhancement and not a bug? Is Linux now considered a second tier platform?
I have to agree with that comment. I don't know if you've seen the oeone product, but if we had this feature working, our product would really kick win32's a$$! You're severly limiting the linux platform's ability to compete on an even scale with win32 by considering this a "linux enhancement" when in fact this is clearly feasible, and not an "enhancement", given that it works under win32. If this trend is to continue then why bother making mozilla cross platform at all? If something works under win32 then to make it work under linux should always just be labelled an "enhancement".
I consider getting MozOpacity to work properly on any platform an enhancement. MozOpacity is a non-standard CSS extension at this point. Setting it to enhancement is merely meant to help differentiate this "bug" for the purpose of prioritizing my work. If other Mozilla contributors want to tackle this bug thats fine. I'll post a helpwanted.
Keywords: helpwanted
I have also marked WIN32 specific opacity bugs as enhancements as well see http://bugzilla.mozilla.org/show_bug.cgi?id=38589 http://bugzilla.mozilla.org/show_bug.cgi?id=103227
This is really strange. The testcase attached to this bug is working for me now too, but I could swear it failed just before.
You're right, it's working properly under 2001110821 (linux). Does anyone know if this is actually fixed, or if there was any work done on the stuff that would cause this to break in the first place? If the fix is temporary, that's no good to us. It does not work under the official 0.9.5 release build for sure.
Actually I suspect there's some intermittent bug. I'm not 100% sure, but I'm VERY sure, that I have seen this both work AND not work in the same build. If so, and given that this only shows up with X, then I suspect we're having problems locking the drawing surface --- maybe a shortage of off-screen memory?
When I run the test case, "top" shows that mozilla uses 30% of the CPU and X uses the rest of the CPU. I don't know if this helps.
Any progress on this?
You've tried this in a debug build, right?
me personally? no
If you can get hold of a debug build and try to reproduce the problem, it would be interesting to see which if any assertions fire.
in themes/modern/global/menu.css, I set the following rule: menupopup > menuitem, popup > menuitem { -moz-opacity: 70%; } My test is as follows: 1) start mozilla 2) mouse over the menu "tasks" 3) click on the menu "tasks" 4) mouse over the menuitems I get the following output in the terminal in a debug build (without setting the rule): ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 XXX Damage rectangle (34,2346,3333,18) does not intersect the widget's view (0,0,3332,2329)! XXX Damage rectangle (4811,2754,5101,341) does not intersect the widget's view (0,0,5100,2737)! XXX Damage rectangle (34,2686,5033,18) does not intersect the widget's view (0,0,5032,2669)! ------------------------------------------------------- I get the following output in the terminal in a debug build (WITH setting the rule): ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: nsDependentString must wrap a non-NULL buffer: 'aPtr', file ../../dist/include/string/nsDependentString.h, line 54 ###!!! Break: at file ../../dist/include/string/nsDependentString.h, line 54 ###!!! ASSERTION: null view: 'nsnull != aView', file nsViewManager.cpp, line 1590 ###!!! Break: at file nsViewManager.cpp, line 1590 /home/colinp/mozilla/themes/../dist/bin/run-mozilla.sh: line 72: 7648 Segmentation fault $prog ${1+"$@"} Note I only get as far as step #2 in my test case before the seg fault occurs.
Can you run with -g to run in gdb and get a stack trace? That would help
I'm really not familiar with gdb, I haven't used it in years. CCing danp@oeone.com for help with a stack trace. Dan, I have a brand new mozilla debug build on my work machine we can do this from.
Nominating for mozilla1.0
Keywords: mozilla1.0
Under Linux, using a build from February 17 12:00 p.m., I get the following stack trace from ddd (well gdb): Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 29067)] 0x41b74ae1 in nsViewManager::UpdateView (this=0x8267660, aView=0x0, aRect=@0xbfffd6f0, aUpdateFlags=4) at nsViewManager.cpp:1542 1542 nsViewManager.cpp: No such file or directory. in nsViewManager.cpp (gdb) backtrace #0 0x41b74ae1 in nsViewManager::UpdateView (this=0x8267660, aView=0x0, aRect=@0xbfffd6f0, aUpdateFlags=4) at nsViewManager.cpp:1542 #1 0x41b7661a in nsViewManager::MoveViewTo (this=0x8267660, aView=0x875fd80, aX=38, aY=38) at nsViewManager.cpp:2262 #2 0x418b109e in nsContainerFrame::PositionFrameView (aPresContext=0x8262fa0, aKidFrame=0x8777770) at nsContainerFrame.cpp:465 #3 0x418b1b76 in nsContainerFrame::PositionChildViews (aPresContext=0x8262fa0, aFrame=0x8777584) at nsContainerFrame.cpp:832 #4 0x418b1b87 in nsContainerFrame::PositionChildViews (aPresContext=0x8262fa0, aFrame=0x8777474) at nsContainerFrame.cpp:833 #5 0x418b1b87 in nsContainerFrame::PositionChildViews (aPresContext=0x8262fa0, aFrame=0x8776f7c) at nsContainerFrame.cpp:833 #6 0x419e280a in nsBox::SetBounds (this=0x8776fb4, aState=@0xbfffe680, aRect=@0xbfffd8b0) at nsBox.cpp:594 #7 0x419ebddb in nsSprocketLayout::Layout (this=0x825f478, aBox=0x8776d60, aState=@0xbfffe680) at nsSprocketLayout.cpp:492 #8 0x419ea08b in nsContainerBox::DoLayout (this=0x8776d60, aState=@0xbfffe680) at nsContainerBox.cpp:606 #9 0x419faead in nsBoxFrame::DoLayout (this=0x8776d28, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #10 0x419e3995 in nsBox::Layout (this=0x8776d60, aState=@0xbfffe680) at nsBox.cpp:1050 #11 0x41a0fd97 in nsMenuFrame::DoLayout (this=0x8575ec4, aState=@0xbfffe680) at nsMenuFrame.cpp:1020 #12 0x419e3995 in nsBox::Layout (this=0x8575efc, aState=@0xbfffe680) at nsBox.cpp:1050 #13 0x419ebf17 in nsSprocketLayout::Layout (this=0x825f478, aBox=0x85bcb5c, aState=@0xbfffe680) at nsSprocketLayout.cpp:524 #14 0x419ea08b in nsContainerBox::DoLayout (this=0x85bcb5c, aState=@0xbfffe680) at nsContainerBox.cpp:606 #15 0x419faead in nsBoxFrame::DoLayout (this=0x85bcb24, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #16 0x419e3995 in nsBox::Layout (this=0x85bcb5c, aState=@0xbfffe680) at nsBox.cpp:1050 #17 0x419ebf17 in nsSprocketLayout::Layout (this=0x825f478, aBox=0x859b8ac, aState=@0xbfffe680) at nsSprocketLayout.cpp:524 #18 0x419ea08b in nsContainerBox::DoLayout (this=0x859b8ac, aState=@0xbfffe680) at nsContainerBox.cpp:606 #19 0x419faead in nsBoxFrame::DoLayout (this=0x859b874, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #20 0x419e3995 in nsBox::Layout (this=0x859b8ac, aState=@0xbfffe680) at nsBox.cpp:1050 #21 0x419ebf17 in nsSprocketLayout::Layout (this=0x825f478, aBox=0x859b6a0, aState=@0xbfffe680) at nsSprocketLayout.cpp:524 #22 0x419ea08b in nsContainerBox::DoLayout (this=0x859b6a0, aState=@0xbfffe680) at nsContainerBox.cpp:606 #23 0x419faead in nsBoxFrame::DoLayout (this=0x859b668, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #24 0x419e3995 in nsBox::Layout (this=0x859b6a0, aState=@0xbfffe680) at nsBox.cpp:1050 #25 0x419ebf17 in nsSprocketLayout::Layout (this=0x825f478, aBox=0x859b5b8, aState=@0xbfffe680) at nsSprocketLayout.cpp:524 #26 0x419ea08b in nsContainerBox::DoLayout (this=0x859b5b8, aState=@0xbfffe680) at nsContainerBox.cpp:606 #27 0x419faead in nsBoxFrame::DoLayout (this=0x859b580, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #28 0x419e3995 in nsBox::Layout (this=0x859b5b8, aState=@0xbfffe680) at nsBox.cpp:1050 #29 0x419ebf17 in nsSprocketLayout::Layout (this=0x825f478, aBox=0x84c15e4, aState=@0xbfffe680) at nsSprocketLayout.cpp:524 #30 0x419ea08b in nsContainerBox::DoLayout (this=0x84c15e4, aState=@0xbfffe680) at nsContainerBox.cpp:606 #31 0x419faead in nsBoxFrame::DoLayout (this=0x84c15ac, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #32 0x419e3995 in nsBox::Layout (this=0x84c15e4, aState=@0xbfffe680) at nsBox.cpp:1050 #33 0x419ef20e in nsStackLayout::Layout (this=0x82706d0, aBox=0x84c13f4, aState=@0xbfffe680) at nsStackLayout.cpp:328 #34 0x419ea08b in nsContainerBox::DoLayout (this=0x84c13f4, aState=@0xbfffe680) at nsContainerBox.cpp:606 #35 0x419faead in nsBoxFrame::DoLayout (this=0x84c13bc, aState=@0xbfffe680) at nsBoxFrame.cpp:1200 #36 0x419e3995 in nsBox::Layout (this=0x84c13f4, aState=@0xbfffe680) at nsBox.cpp:1050 #37 0x419fa7f3 in nsBoxFrame::Reflow (this=0x84c13bc, aPresContext=0x8262fa0, aDesiredSize=@0xbfffe830, aReflowState=@0xbfffe770, aStatus=@0xbfffe9c8) at nsBoxFrame.cpp:991 #38 0x419e06c0 in nsRootBoxFrame::Reflow (this=0x84c13bc, aPresContext=0x8262fa0, aDesiredSize=@0xbfffe830, aReflowState=@0xbfffe770, aStatus=@0xbfffe9c8) at nsRootBoxFrame.cpp:242 #39 0x418b1a3b in nsContainerFrame::ReflowChild (this=0x84c1380, aKidFrame=0x84c13bc, aPresContext=0x8262fa0, aDesiredSize=@0xbfffe830, aReflowState=@0xbfffe770, aX=0, aY=0, aFlags=0, aStatus=@0xbfffe9c8) at nsContainerFrame.cpp:768 #40 0x4192d64b in ViewportFrame::Reflow (this=0x84c1380, aPresContext=0x8262fa0, aDesiredSize=@0xbfffead0, aReflowState=@0xbfffe910, aStatus=@0xbfffe9c8) at nsViewportFrame.cpp:573 #41 0x418cf5ce in nsHTMLReflowCommand::Dispatch (this=0x86fbba0, aPresContext=0x8262fa0, aDesiredSize=@0xbfffead0, aMaxSize=@0xbfffeab0, aRendContext=@0x86390b8) at nsHTMLReflowCommand.cpp:216 #42 0x4190e728 in PresShell::ProcessReflowCommand (this=0x82dfcc0, aQueue=@0x82dfd10, aAccumulateTime=0, aDesiredSize=@0xbfffead0, aMaxSize=@0xbfffeab0, aRenderingContext=@0x86390b8) at nsPresShell.cpp:6204 #43 0x4190e9b0 in PresShell::ProcessReflowCommands (this=0x82dfcc0, aInterruptible=0) at nsPresShell.cpp:6259 #44 0x4190b6cd in PresShell::FlushPendingNotifications (this=0x82dfcc0, aUpdateViews=0) at nsPresShell.cpp:5040 #45 0x40ffa397 in nsXULDocument::FlushPendingNotifications (this=0x8306be8, aFlushReflows=1, aUpdateViews=0) at nsXULDocument.cpp:2354 #46 0x41054853 in nsXBLResourceLoader::NotifyBoundElements (this=0x85167c0) at nsXBLResourceLoader.cpp:280 #47 0x410541b4 in nsXBLResourceLoader::StyleSheetLoaded (this=0x85167c0, aSheet=0x872c860, aNotify=1) at nsXBLResourceLoader.cpp:206 #48 0x40f7508c in CSSLoaderImpl::InsertSheetInDoc (this=0x8505818, aSheet=0x872c860, aDocIndex=2, aElement=0x0, aNotify=1, aObserver=0x85167c0) at nsCSSLoader.cpp:1199 #49 0x40f73aaf in InsertPendingSheet (aPendingData=0x84c2ea0, aLoader=0x8505818) at nsCSSLoader.cpp:761 #50 0x401dc8a4 in nsVoidArray::EnumerateForwards (this=0x85058cc, aFunc=0x40f73a68 <InsertPendingSheet(void *, void *)>, aData=0x8505818) at nsVoidArray.cpp:660 #51 0x40f73d7b in CSSLoaderImpl::Cleanup (this=0x8505818, aKey=@0xbfffef20, aLoadData=0x871e1c8) at nsCSSLoader.cpp:825 #52 0x40f7427a in CSSLoaderImpl::SheetComplete (this=0x8505818, aSheet=0x0, aLoadData=0x871e1c8) at nsCSSLoader.cpp:918 #53 0x40f74466 in CSSLoaderImpl::ParseSheet (this=0x8505818, aIn=0x832ba48, aLoadData=0x871e1c8, aCompleted=@0xbffff094, aSheet=@0xbffff090) at nsCSSLoader.cpp:952 #54 0x40f745c4 in CSSLoaderImpl::DidLoadStyle (this=0x8505818, aLoader=0x875fbc0, aStyleData=0x85188a8, aLoadData=0x871e1c8, aStatus=0) at nsCSSLoader.cpp:989 #55 0x40f73a32 in SheetLoadData::OnStreamComplete (this=0x871e1c8, aLoader=0x875fbc0, aContext=0x0, aStatus=0, aStringLen=2543, aString=0x8774360 "/* ***** BEGIN LICENSE BLOCK *****\n * Version: NPL 1.1/GPL 2.0/LGPL 2.1\n *\n * The contents of this file are subject to the Netscape Public License\n * Version 1.1 (the \"License\"); you may not use this "...) at nsCSSLoader.cpp:743 #56 0x409f9865 in nsStreamLoader::OnStopRequest (this=0x875fbc0, request=0x8502840, ctxt=0x0, aStatus=0) at nsStreamLoader.cpp:161 #57 0x40a47ab8 in nsJARChannel::OnStopRequest (this=0x8502840, jarExtractionTransport=0x85066ec, context=0x0, aStatus=0) at nsJARChannel.cpp:611 #58 0x40a66154 in nsOnStopRequestEvent::HandleEvent (this=0x8773f88) at nsRequestObserverProxy.cpp:212 #59 0x409e3c2c in nsARequestObserverEvent::HandlePLEvent (plev=0x8773f88) at nsRequestObserverProxy.cpp:115 #60 0x40221104 in PL_HandleEvent (self=0x8773f88) at plevent.c:590 #61 0x40220f19 in PL_ProcessPendingEvents (self=0x80e72d8) at plevent.c:520 #62 0x4022314a in nsEventQueueImpl::ProcessPendingEvents (this=0x80e7290) at nsEventQueue.cpp:388 #63 0x41364044 in event_processor_callback (data=0x80e7290, source=7, condition=GDK_INPUT_READ) at nsAppShell.cpp:184 #64 0x41363c23 in our_gdk_io_invoke (source=0x80dc948, condition=G_IO_IN, data=0x8263f28) at nsAppShell.cpp:77 #65 0x404b001e in g_io_unix_dispatch () from /usr/lib/libglib-1.2.so.0 #66 0x404b17f3 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0 #67 0x404b1dd9 in g_main_iterate () from /usr/lib/libglib-1.2.so.0 #68 0x404b1f8c in g_main_run () from /usr/lib/libglib-1.2.so.0 #69 0x403c5803 in gtk_main () from /usr/lib/libgtk-1.2.so.0 #70 0x413646b9 in nsAppShell::Run (this=0x815e340) at nsAppShell.cpp:364 #71 0x4130b221 in nsAppShellService::Run (this=0x815da30) at nsAppShellService.cpp:307 #72 0x08059925 in main1 (argc=1, argv=0xbffff7e4, nativeApp=0x0) at nsAppRunner.cpp:1285 #73 0x0805a5bf in main (argc=1, argv=0xbffff7e4) at nsAppRunner.cpp:1625 #74 0x405fa3b6 in __libc_start_main (main=0x805a3b8 <main>, argc=1, ubp_av=0xbffff7e4, init=0x8054058 <_init>, fini=0x8063054 <_fini>, rtld_fini=0x4000d2cc <_dl_fini>, stack_end=0xbffff7dc) at ../sysdeps/generic/libc-start.c:129 (gdb)
Perhaps the same problem at http://www.spawn-design.de/ When you mouse over an image in the group of 7 small images, they should fade out, but you can only see the fading if you move the mouse rapidly on and off an image. The image only updates on the first setTimeout after the mouse moves onto the image.
Do we have any movement on this one?
There is something about it on #144832
This actually seems to be fixed now, probably as a result of one of the other opacity bugs.
Component: GFX → GFX: Gtk
could a linux user confirm that the bug is fixed ? thanks
I *am* a Linux user. :-)
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
thanks ;)
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.