Closed Bug 66022 Opened 24 years ago Closed 21 years ago

decreasing -moz-opacity/MozOpacity from 100% doesn't work -infinite recursion] - Trunk & N610 [@ nsScriptSecurityManager::GetPrincipalAndFrame]

Categories

(Core :: CSS Parsing and Computation, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: martin.honnen, Assigned: jst)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(2 files, 1 obsolete file)

When trying to fade out an image by changing
  document.imageName.style.MozOpacity
fails when the IMG element has its STYLE set with
  -moz-opacity: 100%.
Example code:

<HTML>
<HEAD>

<SCRIPT>
var opacity = 100;
var step = -10;
function fadeOut () {
  opacity += step;
  document.imageName.style.MozOpacity = opacity + '%';
  if (opacity > 0)
    setTimeout('fadeOut()', 100);
}
</SCRIPT>
</HEAD>
<BODY>
<IMG NAME="imageName"
     SRC="http://www.mozilla.org/images/mozilla-banner.gif"
     STYLE="-moz-opacity: 100%;"
     ONLOAD="fadeOut (this)"
>
</BODY>
</HTML>


The following code works however

<HTML>
<HEAD>

<SCRIPT>
var opacity = 100;
var step = -10;
function fadeOut () {
  opacity += step;
  document.imageName.style.MozOpacity = opacity + '%';
  if (opacity > 0)
    setTimeout('fadeOut()', 100);
}
</SCRIPT>
</HEAD>
<BODY>
<IMG NAME="imageName"
     SRC="http://www.mozilla.org/images/mozilla-banner.gif"
     STYLE="-moz-opacity: 99%;"
     ONLOAD="fadeOut (this)"
>
</BODY>
</HTML>
I see this on Linux build 2001-01-18-08.  If the initial value is anything less
than 100%, the script works just fine.
OS: Windows 95 → All
Netscape's standard compliance QA team reorganised itself once again, so taking 
remaining non-tables style bugs. Sorry about the spam. I tried to get this done 
directly at the database level, but apparently that is "not easy because of the 
shadow db", "plus it screws up the audit trail", so no can do...
QA Contact: chrisd → ian
I tried the testcase and it crashed build 2001051908 on Win2k (SP2).  Also tried
it with K-Meleon .04 and it crashed that also.  

Talkback ID: TB30674059Y

To reproduce, just view the testcase attached to this bug.

Added crash keyword

Jake
Keywords: crash
I can confirm the crash hoju mentioned.  Adding topcrash keyword and Trunk [@ 
nsScriptSecurityManager::CheckPropertyAccessImpl - caps.dll] to summary.  
This is showing up in the talkback topcrash reports under the caps.dll and 
nsScriptSecurityManager::CheckPropertyAccessImpl stack signatures.  Here is the 
crash info from talkback:

Incident ID 30732851 
 Trigger Time 
                2001-05-21 15:56:00 
 Email Address 
                jpatel@netscape.com 

 User Comments 
                once again, trying to view test case given in bug 66022 
 Build ID
                2001052111 
 Product ID
                Netscape6.50 
 Platform ID
                Win32 
 Stack Trace

nsScriptSecurityManager::CheckPropertyAccessImpl 
[d:\builds\seamonkey\mozilla\caps\src\nsScriptSecurityManager.cpp, line 171] 
nsScriptSecurityManager::CanAccess 
[d:\builds\seamonkey\mozilla\caps\src\nsScriptSecurityManager.cpp, line 1717] 
XPCWrappedNative::CallMethod 
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 
1527] 
XPC_WN_GetterSetter 
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, 
line 1274] 
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 809] 
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 897] 
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2796] 
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 825] 
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 897] 
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 3309] 
nsJSContext::CallEventHandler 
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 937] 
nsJSEventListener::HandleEvent 
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 140] 
nsEventListenerManager::HandleEventSubType 
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 
1120] 
nsEventListenerManager::HandleEvent 
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 
1793] 
nsGenericElement::HandleDOMEvent 
[d:\builds\seamonkey\mozilla\content\base\src\nsGenericElement.cpp, line 1674] 
nsHTMLImageElement::HandleDOMEvent 
[d:\builds\seamonkey\mozilla\content\html\content\src\nsHTMLImageElement.cpp, 
line 613] 
PresShell::HandleEventInternal 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5514] 
PresShell::HandleEventWithTarget 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5486] 
nsImageFrame::OnStopDecode 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 418] 
nsImageListener::OnStopDecode 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 1634] 
imgRequestProxy::OnStopDecode 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequestProxy.cpp, line 341] 
imgRequest::AddProxy 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequest.cpp, line 145] 
imgRequestProxy::Init 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequestProxy.cpp, line 109] 
imgLoader::CreateNewProxyForRequest 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgLoader.cpp, line 292] 
imgLoader::LoadImage 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgLoader.cpp, line 209] 
nsImageFrame::LoadImage 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 1379] 
nsImageFrame::Init 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 248] 
nsCSSFrameConstructor::InitAndRestoreFrame 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 6788] 
nsCSSFrameConstructor::ConstructFrameByTag 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 5036] 
nsCSSFrameConstructor::ConstructFrameInternal 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 7332] 
nsCSSFrameConstructor::ConstructFrame 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 7238] 
nsCSSFrameConstructor::ContentInserted 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 8716] 
nsCSSFrameConstructor::RecreateFramesForContent 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line
11240] 
nsCSSFrameConstructor::AttributeChanged 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp, 
line 10030] 
StyleSetImpl::AttributeChanged 
[d:\builds\seamonkey\mozilla\content\base\src\nsStyleSet.cpp, line 1290] 
PresShell::AttributeChanged 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 4816] 
nsDocument::AttributeChanged 
[d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 1676] 
nsHTMLDocument::AttributeChanged 
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLDocument.cpp, line 
1290] 
nsDOMCSSAttributeDeclaration::ParseDeclaration 
[d:\builds\seamonkey\mozilla\content\html\content\src\nsGenericHTMLElement.cpp, 
line
345] 
nsDOMCSSDeclaration::SetProperty 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsDOMCSSDeclaration.cpp, 
line 208] 
nsDOMCSSDeclaration::SetMozOpacity 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsDOMCSSDeclaration.cpp, 
line 1704] 
XPTC_InvokeByIndex 
[d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, 
line 139] 
XPCWrappedNative::CallMethod 
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 
1837] 
XPC_WN_GetterSetter 
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, 
line 1266] 
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 809] 
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 897] 
js_SetProperty [d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 2550] 
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2549] 
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 825] 
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 897] 
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 3309] 
nsJSContext::CallEventHandler 
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 937] 
nsJSEventListener::HandleEvent 
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 140] 
nsEventListenerManager::HandleEventSubType 
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 
1120] 
nsEventListenerManager::HandleEvent 
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 
1793] 
nsGenericElement::HandleDOMEvent 
[d:\builds\seamonkey\mozilla\content\base\src\nsGenericElement.cpp, line 1674] 
nsHTMLImageElement::HandleDOMEvent 
[d:\builds\seamonkey\mozilla\content\html\content\src\nsHTMLImageElement.cpp, 
line 613] 
PresShell::HandleEventInternal 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5514] 
PresShell::HandleEventWithTarget 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5486] 
nsImageFrame::OnStopDecode 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 418] 
nsImageListener::OnStopDecode 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsImageFrame.cpp, line 1634] 
imgRequestProxy::OnStopDecode 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequestProxy.cpp, line 341] 
imgRequest::AddProxy 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequest.cpp, line 145] 
imgRequestProxy::Init 
[d:\builds\seamonkey\mozilla\modules\libpr0n\src\imgRequestProxy.cpp, line 109] 
Keywords: topcrash
Summary: decreasing -moz-opacity/MozOpacity from 100% doesn't work → decreasing -moz-opacity/MozOpacity from 100% doesn't work - Trunk [@ nsScriptSecurityManager::CheckPropertyAccessImpl - caps.dll]
Reassigning to security based on stack.
Assignee: pierre → mstoltz
Component: Style System → Security: General
QA Contact: ian → ckritzer
Looks like an infinite recursion to me - is the crash you're seeing a stack
overflow? That's what I'm getting. I think SecurityManager's not the culprit,
it's just where your stack is overflowing. Back to Style.
Assignee: mstoltz → pierre
Component: Security: General → Style System
QA Contact: ckritzer → ian
Summary: decreasing -moz-opacity/MozOpacity from 100% doesn't work - Trunk [@ nsScriptSecurityManager::CheckPropertyAccessImpl - caps.dll] → decreasing -moz-opacity/MozOpacity from 100% doesn't work -infinite recursion]
jst, can you take a look at this. I'm not sure the topcrash keyword is justified 
since I haven't seen a real url cited. 

NS_CheckThreadSafe(void * 0x00482eb0, const char * 0x02425040) line 518
nsGenericElement::AddRef(nsGenericElement * const 0x03db6230) line 2574 + 58 
bytes
nsHTMLBodyElement::AddRef(nsHTMLBodyElement * const 0x03db6230) line 210 + 12 
bytes
ns_if_addref(nsISupports * 0x03db6230) line 1129 + 18 bytes
nsISupportsKey::nsISupportsKey(nsISupports * 0x03db6230) line 182 + 21 bytes
nsBindingManager::GetBinding(nsBindingManager * const 0x03d79570, nsIContent * 
0x03db6230, nsIXBLBinding * * 0x0003311c) line 506
nsBindingManager::GetBindingImplementation(nsBindingManager * const 0x03d79570, 
nsIContent * 0x03db6230, const nsID & {...}, void * * 0x000331d4) line 1074 + 40 
bytes
nsGenericElement::QueryInterface(nsGenericElement * const 0x03db6230, const nsID 
& {...}, void * * 0x000331d4) line 2560 + 38 bytes
nsGenericHTMLElement::QueryInterface(nsGenericHTMLElement * const 0x03db6230, 
const nsID & {...}, void * * 0x000331d4) line 483 + 17 bytes
nsHTMLBodyElement::QueryInterface(nsHTMLBodyElement * const 0x03db6230, const 
nsID & {...}, void * * 0x000331d4) line 721 + 101 bytes
nsCSSFrameConstructor::GetFrameFor(nsIPresShell * 0x03d90ba0, nsIPresContext * 
0x03d8d240, nsIContent * 0x03db6230) line 7383 + 41 bytes
nsCSSFrameConstructor::ContentInserted(nsCSSFrameConstructor * const 0x03d97610, 
nsIPresContext * 0x03d8d240, nsIContent * 0x03db6230, nsIContent * 0x03e02e60, 
int 1, nsILayoutHistoryState * 0x03e024c0) line 8495 + 25 bytes
nsCSSFrameConstructor::RecreateFramesForContent(nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, int 1, nsIStyleRule * 0x03e000d0, nsIStyleContext * 
0x04511d00) line 11255 + 45 bytes
nsCSSFrameConstructor::AttributeChanged(nsCSSFrameConstructor * const 
0x03d97610, nsIPresContext * 0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom 
* 0x010f69f0 {"style"}, int 4) line 10020 + 38 bytes
StyleSetImpl::AttributeChanged(StyleSetImpl * const 0x03d96260, nsIPresContext * 
0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 1152
PresShell::AttributeChanged(PresShell * const 0x03d90ba8, nsIDocument * 
0x03d7ca50, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 4821 + 57 bytes
nsDocument::AttributeChanged(nsDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1675 + 32 bytes
nsHTMLDocument::AttributeChanged(nsHTMLDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1284
nsDOMCSSAttributeDeclaration::ParseDeclaration(const nsAString & {...}, int 1, 
int 0) line 346
nsDOMCSSDeclaration::SetProperty(nsDOMCSSDeclaration * const 0x03e0e670, const 
nsAString & {...}, const nsAString & {...}, const nsAString & {...}) line 207 + 
22 bytes
nsDOMCSSDeclaration::SetMozOpacity(nsDOMCSSDeclaration * const 0x03e0e674, const 
nsAString & {...}) line 1703 + 53 bytes
XPTC_InvokeByIndex(nsISupports * 0x03e0e674, unsigned int 250, unsigned int 1, 
nsXPTCVariant * 0x00033e90) line 139
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode 
CALL_SETTER) line 1835 + 42 bytes
XPCWrappedNative::SetAttribute(XPCCallContext & {...}) line 1730 + 14 bytes
XPC_WN_GetterSetter(JSContext * 0x03637e20, JSObject * 0x02a89828, unsigned int 
1, long * 0x02b716f0, long * 0x000340d8) line 1265 + 9 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 807 + 23 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a89828, long 44603648, 
unsigned int 0, unsigned int 1, long * 0x00034eb8, long * 0x00034eb8) line 896 + 
20 bytes
js_SetProperty(JSContext * 0x03637e20, JSObject * 0x02a89828, long 59824592, 
long * 0x00034eb8) line 2554 + 47 bytes
js_Interpret(JSContext * 0x03637e20, long * 0x00035070) line 2546 + 1939 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 824 + 13 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 44603384, 
unsigned int 0, unsigned int 1, long * 0x00035248, long * 0x00035198) line 896 + 
20 bytes
JS_CallFunctionValue(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 
44603384, unsigned int 1, long * 0x00035248, long * 0x00035198) line 3320 + 31 
bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x03635ab0, void * 0x02a897f0, 
void * 0x02a897f8, unsigned int 1, void * 0x00035248, int * 0x00035244, int 0) 
line 934 + 33 bytes
nsJSEventListener::HandleEvent(nsJSEventListener * const 0x03e00500, nsIDOMEvent 
* 0x038f5484) line 139 + 57 bytes
nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x03e004c0, 
nsIDOMEvent * 0x038f5484, nsIDOMEventTarget * 0x038eea10, unsigned int 1, 
unsigned int 7) line 1119 + 20 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x03e00550, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00035a9c, nsIDOMEvent * * 0x000359d4, 
nsIDOMEventTarget * 0x038eea10, unsigned int 7, nsEventStatus * 0x00035ac4) line 
1790 + 36 bytes
nsGenericElement::HandleDOMEvent(nsGenericElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00035a9c, nsIDOMEvent * * 0x000359d4, 
unsigned int 1, nsEventStatus * 0x00035ac4) line 1674
nsHTMLImageElement::HandleDOMEvent(nsHTMLImageElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00035a9c, nsIDOMEvent * * 0x00000000, 
unsigned int 65, nsEventStatus * 0x00035ac4) line 593
PresShell::HandleEventInternal(nsEvent * 0x00035a9c, nsIView * 0x00000000, 
unsigned int 65, nsEventStatus * 0x00035ac4) line 5517 + 47 bytes
PresShell::HandleEventWithTarget(PresShell * const 0x03d90ba0, nsEvent * 
0x00035a9c, nsIFrame * 0x02b72848, nsIContent * 0x03e02e60, unsigned int 65, 
nsEventStatus * 0x00035ac4) line 5490 + 22 bytes
nsImageFrame::OnStopDecode(nsImageFrame * const 0x02b72848, imgIRequest * 
0x038ef190, nsIPresContext * 0x03d8d240, unsigned int 5505024, const unsigned 
short * 0x00000000) line 420
nsImageListener::OnStopDecode(nsImageListener * const 0x03908110, imgIRequest * 
0x038ef190, nsISupports * 0x03d8d240, unsigned int 5505024, const unsigned short 
* 0x00000000) line 1646 + 42 bytes
imgRequestProxy::OnStopDecode(imgRequestProxy * const 0x038ef194, imgIRequest * 
0x00000000, nsISupports * 0x00000000, unsigned int 5505024, const unsigned short 
* 0x00000000) line 341
imgRequest::AddProxy(imgRequestProxy * 0x038ef190) line 145
imgRequestProxy::Init(imgRequest * 0x03e03e50, nsILoadGroup * 0x038d9930, 
imgIDecoderObserver * 0x03908110, nsISupports * 0x03d8d240) line 109
imgLoader::CreateNewProxyForRequest(imgRequest * 0x03e03e50, nsILoadGroup * 
0x038d9930, imgIDecoderObserver * 0x03908110, nsISupports * 0x03d8d240, 
imgIRequest * * 0x02b7287c) line 287 + 24 bytes
imgLoader::LoadImage(imgLoader * const 0x02722b20, nsIURI * 0x03908030, 
nsILoadGroup * 0x038d9930, imgIDecoderObserver * 0x03908110, nsISupports * 
0x03d8d240, imgIRequest * * 0x02b7287c) line 203 + 28 bytes
nsImageFrame::LoadImage(const nsAString & {...}, nsIPresContext * 0x03d8d240, 
imgIRequest * * 0x02b7287c) line 1385 + 61 bytes
nsImageFrame::Init(nsImageFrame * const 0x02b72848, nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, nsIFrame * 0x04511680, nsIStyleContext * 0x04511d00, 
nsIFrame * 0x00000000) line 246 + 49 bytes
nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x03d8d240, 
nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame * 0x04511680, 
nsIStyleContext * 0x04511d00, nsIFrame * 0x00000000, nsIFrame * 0x02b72848) line 
6690 + 32 bytes
nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}) line 4972
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}, int 0) line 7226 + 52 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x03d90ba0, nsIPresContext 
* 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame 
* 0x04511680, nsFrameItems & {...}) line 7139 + 56 bytes
nsCSSFrameConstructor::ContentInserted(nsCSSFrameConstructor * const 0x03d97610, 
nsIPresContext * 0x03d8d240, nsIContent * 0x03db6230, nsIContent * 0x03e02e60, 
int 1, nsILayoutHistoryState * 0x03e024c0) line 8640 + 46 bytes
nsCSSFrameConstructor::RecreateFramesForContent(nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, int 1, nsIStyleRule * 0x03e000d0, nsIStyleContext * 
0x04511d00) line 11255 + 45 bytes
nsCSSFrameConstructor::AttributeChanged(nsCSSFrameConstructor * const 
0x03d97610, nsIPresContext * 0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom 
* 0x010f69f0 {"style"}, int 4) line 10020 + 38 bytes
StyleSetImpl::AttributeChanged(StyleSetImpl * const 0x03d96260, nsIPresContext * 
0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 1152
PresShell::AttributeChanged(PresShell * const 0x03d90ba8, nsIDocument * 
0x03d7ca50, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 4821 + 57 bytes
nsDocument::AttributeChanged(nsDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1675 + 32 bytes
nsHTMLDocument::AttributeChanged(nsHTMLDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1284
nsDOMCSSAttributeDeclaration::ParseDeclaration(const nsAString & {...}, int 1, 
int 0) line 346
nsDOMCSSDeclaration::SetProperty(nsDOMCSSDeclaration * const 0x03e0e670, const 
nsAString & {...}, const nsAString & {...}, const nsAString & {...}) line 207 + 
22 bytes
nsDOMCSSDeclaration::SetMozOpacity(nsDOMCSSDeclaration * const 0x03e0e674, const 
nsAString & {...}) line 1703 + 53 bytes
XPTC_InvokeByIndex(nsISupports * 0x03e0e674, unsigned int 250, unsigned int 1, 
nsXPTCVariant * 0x000371a0) line 139
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode 
CALL_SETTER) line 1835 + 42 bytes
XPCWrappedNative::SetAttribute(XPCCallContext & {...}) line 1730 + 14 bytes
XPC_WN_GetterSetter(JSContext * 0x03637e20, JSObject * 0x02a89828, unsigned int 
1, long * 0x02b7163c, long * 0x000373e8) line 1265 + 9 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 807 + 23 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a89828, long 44603648, 
unsigned int 0, unsigned int 1, long * 0x000381c8, long * 0x000381c8) line 896 + 
20 bytes
js_SetProperty(JSContext * 0x03637e20, JSObject * 0x02a89828, long 59824592, 
long * 0x000381c8) line 2554 + 47 bytes
js_Interpret(JSContext * 0x03637e20, long * 0x00038380) line 2546 + 1939 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 824 + 13 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 44603384, 
unsigned int 0, unsigned int 1, long * 0x00038558, long * 0x000384a8) line 896 + 
20 bytes
JS_CallFunctionValue(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 
44603384, unsigned int 1, long * 0x00038558, long * 0x000384a8) line 3320 + 31 
bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x03635ab0, void * 0x02a897f0, 
void * 0x02a897f8, unsigned int 1, void * 0x00038558, int * 0x00038554, int 0) 
line 934 + 33 bytes
nsJSEventListener::HandleEvent(nsJSEventListener * const 0x03e00500, nsIDOMEvent 
* 0x03909774) line 139 + 57 bytes
nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x03e004c0, 
nsIDOMEvent * 0x03909774, nsIDOMEventTarget * 0x0390f300, unsigned int 1, 
unsigned int 7) line 1119 + 20 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x03e00550, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00038dac, nsIDOMEvent * * 0x00038ce4, 
nsIDOMEventTarget * 0x0390f300, unsigned int 7, nsEventStatus * 0x00038dd4) line 
1790 + 36 bytes
nsGenericElement::HandleDOMEvent(nsGenericElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00038dac, nsIDOMEvent * * 0x00038ce4, 
unsigned int 1, nsEventStatus * 0x00038dd4) line 1674
nsHTMLImageElement::HandleDOMEvent(nsHTMLImageElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x00038dac, nsIDOMEvent * * 0x00000000, 
unsigned int 65, nsEventStatus * 0x00038dd4) line 593
PresShell::HandleEventInternal(nsEvent * 0x00038dac, nsIView * 0x00000000, 
unsigned int 65, nsEventStatus * 0x00038dd4) line 5517 + 47 bytes
PresShell::HandleEventWithTarget(PresShell * const 0x03d90ba0, nsEvent * 
0x00038dac, nsIFrame * 0x02b727bc, nsIContent * 0x03e02e60, unsigned int 65, 
nsEventStatus * 0x00038dd4) line 5490 + 22 bytes
nsImageFrame::OnStopDecode(nsImageFrame * const 0x02b727bc, imgIRequest * 
0x039096d0, nsIPresContext * 0x03d8d240, unsigned int 5505024, const unsigned 
short * 0x00000000) line 420
nsImageListener::OnStopDecode(nsImageListener * const 0x03909730, imgIRequest * 
0x039096d0, nsISupports * 0x03d8d240, unsigned int 5505024, const unsigned short 
* 0x00000000) line 1646 + 42 bytes
imgRequestProxy::OnStopDecode(imgRequestProxy * const 0x039096d4, imgIRequest * 
0x00000000, nsISupports * 0x00000000, unsigned int 5505024, const unsigned short 
* 0x00000000) line 341
imgRequest::AddProxy(imgRequestProxy * 0x039096d0) line 145
imgRequestProxy::Init(imgRequest * 0x03e03e50, nsILoadGroup * 0x038d9930, 
imgIDecoderObserver * 0x03909730, nsISupports * 0x03d8d240) line 109
imgLoader::CreateNewProxyForRequest(imgRequest * 0x03e03e50, nsILoadGroup * 
0x038d9930, imgIDecoderObserver * 0x03909730, nsISupports * 0x03d8d240, 
imgIRequest * * 0x02b727f0) line 287 + 24 bytes
imgLoader::LoadImage(imgLoader * const 0x02722b20, nsIURI * 0x03909650, 
nsILoadGroup * 0x038d9930, imgIDecoderObserver * 0x03909730, nsISupports * 
0x03d8d240, imgIRequest * * 0x02b727f0) line 203 + 28 bytes
nsImageFrame::LoadImage(const nsAString & {...}, nsIPresContext * 0x03d8d240, 
imgIRequest * * 0x02b727f0) line 1385 + 61 bytes
nsImageFrame::Init(nsImageFrame * const 0x02b727bc, nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, nsIFrame * 0x04511680, nsIStyleContext * 0x04511d00, 
nsIFrame * 0x00000000) line 246 + 49 bytes
nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x03d8d240, 
nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame * 0x04511680, 
nsIStyleContext * 0x04511d00, nsIFrame * 0x00000000, nsIFrame * 0x02b727bc) line 
6690 + 32 bytes
nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}) line 4972
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}, int 0) line 7226 + 52 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x03d90ba0, nsIPresContext 
* 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame 
* 0x04511680, nsFrameItems & {...}) line 7139 + 56 bytes
nsCSSFrameConstructor::ContentInserted(nsCSSFrameConstructor * const 0x03d97610, 
nsIPresContext * 0x03d8d240, nsIContent * 0x03db6230, nsIContent * 0x03e02e60, 
int 1, nsILayoutHistoryState * 0x03e024c0) line 8640 + 46 bytes
nsCSSFrameConstructor::RecreateFramesForContent(nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, int 1, nsIStyleRule * 0x03e000d0, nsIStyleContext * 
0x04511d00) line 11255 + 45 bytes
nsCSSFrameConstructor::AttributeChanged(nsCSSFrameConstructor * const 
0x03d97610, nsIPresContext * 0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom 
* 0x010f69f0 {"style"}, int 4) line 10020 + 38 bytes
StyleSetImpl::AttributeChanged(StyleSetImpl * const 0x03d96260, nsIPresContext * 
0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 1152
PresShell::AttributeChanged(PresShell * const 0x03d90ba8, nsIDocument * 
0x03d7ca50, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 4821 + 57 bytes
nsDocument::AttributeChanged(nsDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1675 + 32 bytes
nsHTMLDocument::AttributeChanged(nsHTMLDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1284
nsDOMCSSAttributeDeclaration::ParseDeclaration(const nsAString & {...}, int 1, 
int 0) line 346
nsDOMCSSDeclaration::SetProperty(nsDOMCSSDeclaration * const 0x03e0e670, const 
nsAString & {...}, const nsAString & {...}, const nsAString & {...}) line 207 + 
22 bytes
nsDOMCSSDeclaration::SetMozOpacity(nsDOMCSSDeclaration * const 0x03e0e674, const 
nsAString & {...}) line 1703 + 53 bytes
XPTC_InvokeByIndex(nsISupports * 0x03e0e674, unsigned int 250, unsigned int 1, 
nsXPTCVariant * 0x0003a4b0) line 139
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode 
CALL_SETTER) line 1835 + 42 bytes
XPCWrappedNative::SetAttribute(XPCCallContext & {...}) line 1730 + 14 bytes
XPC_WN_GetterSetter(JSContext * 0x03637e20, JSObject * 0x02a89828, unsigned int 
1, long * 0x02b71588, long * 0x0003a6f8) line 1265 + 9 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 807 + 23 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a89828, long 44603648, 
unsigned int 0, unsigned int 1, long * 0x0003b4d8, long * 0x0003b4d8) line 896 + 
20 bytes
js_SetProperty(JSContext * 0x03637e20, JSObject * 0x02a89828, long 59824592, 
long * 0x0003b4d8) line 2554 + 47 bytes
js_Interpret(JSContext * 0x03637e20, long * 0x0003b690) line 2546 + 1939 bytes
js_Invoke(JSContext * 0x03637e20, unsigned int 1, unsigned int 2) line 824 + 13 
bytes
js_InternalInvoke(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 44603384, 
unsigned int 0, unsigned int 1, long * 0x0003b868, long * 0x0003b7b8) line 896 + 
20 bytes
JS_CallFunctionValue(JSContext * 0x03637e20, JSObject * 0x02a897f0, long 
44603384, unsigned int 1, long * 0x0003b868, long * 0x0003b7b8) line 3320 + 31 
bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x03635ab0, void * 0x02a897f0, 
void * 0x02a897f8, unsigned int 1, void * 0x0003b868, int * 0x0003b864, int 0) 
line 934 + 33 bytes
nsJSEventListener::HandleEvent(nsJSEventListener * const 0x03e00500, nsIDOMEvent 
* 0x0390c354) line 139 + 57 bytes
nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x03e004c0, 
nsIDOMEvent * 0x0390c354, nsIDOMEventTarget * 0x0390ed40, unsigned int 1, 
unsigned int 7) line 1119 + 20 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x03e00550, 
nsIPresContext * 0x03d8d240, nsEvent * 0x0003c0bc, nsIDOMEvent * * 0x0003bff4, 
nsIDOMEventTarget * 0x0390ed40, unsigned int 7, nsEventStatus * 0x0003c0e4) line 
1790 + 36 bytes
nsGenericElement::HandleDOMEvent(nsGenericElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x0003c0bc, nsIDOMEvent * * 0x0003bff4, 
unsigned int 1, nsEventStatus * 0x0003c0e4) line 1674
nsHTMLImageElement::HandleDOMEvent(nsHTMLImageElement * const 0x03e02e60, 
nsIPresContext * 0x03d8d240, nsEvent * 0x0003c0bc, nsIDOMEvent * * 0x00000000, 
unsigned int 65, nsEventStatus * 0x0003c0e4) line 593
PresShell::HandleEventInternal(nsEvent * 0x0003c0bc, nsIView * 0x00000000, 
unsigned int 65, nsEventStatus * 0x0003c0e4) line 5517 + 47 bytes
PresShell::HandleEventWithTarget(PresShell * const 0x03d90ba0, nsEvent * 
0x0003c0bc, nsIFrame * 0x02b72730, nsIContent * 0x03e02e60, unsigned int 65, 
nsEventStatus * 0x0003c0e4) line 5490 + 22 bytes
nsImageFrame::OnStopDecode(nsImageFrame * const 0x02b72730, imgIRequest * 
0x0390b920, nsIPresContext * 0x03d8d240, unsigned int 5505024, const unsigned 
short * 0x00000000) line 420
nsImageListener::OnStopDecode(nsImageListener * const 0x0390c5f0, imgIRequest * 
0x0390b920, nsISupports * 0x03d8d240, unsigned int 5505024, const unsigned short 
* 0x00000000) line 1646 + 42 bytes
imgRequestProxy::OnStopDecode(imgRequestProxy * const 0x0390b924, imgIRequest * 
0x00000000, nsISupports * 0x00000000, unsigned int 5505024, const unsigned short 
* 0x00000000) line 341
imgRequest::AddProxy(imgRequestProxy * 0x0390b920) line 145
imgRequestProxy::Init(imgRequest * 0x03e03e50, nsILoadGroup * 0x038d9930, 
imgIDecoderObserver * 0x0390c5f0, nsISupports * 0x03d8d240) line 109
imgLoader::CreateNewProxyForRequest(imgRequest * 0x03e03e50, nsILoadGroup * 
0x038d9930, imgIDecoderObserver * 0x0390c5f0, nsISupports * 0x03d8d240, 
imgIRequest * * 0x02b72764) line 287 + 24 bytes
imgLoader::LoadImage(imgLoader * const 0x02722b20, nsIURI * 0x03908920, 
nsILoadGroup * 0x038d9930, imgIDecoderObserver * 0x0390c5f0, nsISupports * 
0x03d8d240, imgIRequest * * 0x02b72764) line 203 + 28 bytes
nsImageFrame::LoadImage(const nsAString & {...}, nsIPresContext * 0x03d8d240, 
imgIRequest * * 0x02b72764) line 1385 + 61 bytes
nsImageFrame::Init(nsImageFrame * const 0x02b72730, nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, nsIFrame * 0x04511680, nsIStyleContext * 0x04511d00, 
nsIFrame * 0x00000000) line 246 + 49 bytes
nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x03d8d240, 
nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame * 0x04511680, 
nsIStyleContext * 0x04511d00, nsIFrame * 0x00000000, nsIFrame * 0x02b72730) line 
6690 + 32 bytes
nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}) line 4972
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x03d90ba0, 
nsIPresContext * 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 
0x03e02e60, nsIFrame * 0x04511680, nsIAtom * 0x010f3860 {"img"}, int 3, 
nsIStyleContext * 0x04511d00, nsFrameItems & {...}, int 0) line 7226 + 52 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x03d90ba0, nsIPresContext 
* 0x03d8d240, nsFrameConstructorState & {...}, nsIContent * 0x03e02e60, nsIFrame 
* 0x04511680, nsFrameItems & {...}) line 7139 + 56 bytes
nsCSSFrameConstructor::ContentInserted(nsCSSFrameConstructor * const 0x03d97610, 
nsIPresContext * 0x03d8d240, nsIContent * 0x03db6230, nsIContent * 0x03e02e60, 
int 1, nsILayoutHistoryState * 0x03e024c0) line 8640 + 46 bytes
nsCSSFrameConstructor::RecreateFramesForContent(nsIPresContext * 0x03d8d240, 
nsIContent * 0x03e02e60, int 1, nsIStyleRule * 0x03e000d0, nsIStyleContext * 
0x04511d00) line 11255 + 45 bytes
nsCSSFrameConstructor::AttributeChanged(nsCSSFrameConstructor * const 
0x03d97610, nsIPresContext * 0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom 
* 0x010f69f0 {"style"}, int 4) line 10020 + 38 bytes
StyleSetImpl::AttributeChanged(StyleSetImpl * const 0x03d96260, nsIPresContext * 
0x03d8d240, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 1152
PresShell::AttributeChanged(PresShell * const 0x03d90ba8, nsIDocument * 
0x03d7ca50, nsIContent * 0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 
4) line 4821 + 57 bytes
nsDocument::AttributeChanged(nsDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1675 + 32 bytes
nsHTMLDocument::AttributeChanged(nsHTMLDocument * const 0x03d7ca50, nsIContent * 
0x03e02e60, int 0, nsIAtom * 0x010f69f0 {"style"}, int 4) line 1284
nsDOMCSSAttributeDeclaration::ParseDeclaration(const nsAString & {...}, int 1, 
int 0) line 346

much more stack omitted
Assignee: pierre → jst
Target Milestone: --- → mozilla0.9.3
Status: NEW → ASSIGNED
Keywords: mozilla0.9.3
Hardware: PC → All
Whiteboard: [HAVE FIX]
Mark, could you have a look at the attached patch, the patch makes the image
frame code always fire the DOM events (onload and onerror) asynchronously which
fixes this problem. The reason we need this is that imagelib can't make up it's
mind if it wants to call it's observer notifications synchronously or
asynchronously, in the case where images are loaded from the cache the
notifications are called synchronously, but in the case where the images are
loaded off the net the notifications are called asynchronously, as they IMO
always should.

We should probably fix imagelib to always fire the OnStopDecode() notification
asynchronously so that we wouldn't have this inconsistency in the code, but I'm
not sure we wanto make that change this late in the game.

r=? sr=?
A couple of small changes for the patch:

* check/assert aContent argument in HandleImagePLEvent
* Check for a null node in HandleImagePLEvent
* Check event allocation for null in FireDOMEvent (shouldn't it use PR_NEW
instead of new?)
* do we need to open a bug about making this consistent in the image lib? If so,
please put the bug number in the comment for FireDOMEvent.

with that, sr=attinasi
i still assert that imagelib fires events consistantly... it always fires them 
as soon as possible, which may or may not be during your call into it.

with attanasi's changes, r=pavlov
So pavlov, should imagelib always fire events asynchronously as Johnny
suggested, or is there some concrete benefit to having a mixed synch / asynch model?
well, imho, the benifit from sending them right away is informing the client 
that everything is ready to go, so that they can go ahead and be aware of the 
size of things, etc.  now, it would be possible for imglib to send everything 
async (which may be the case anyways when imglib runs on another thread) and 
make the clients such as nsImageFrame call methods on the request it gets back 
to see if info is available and preset things that will later get events 
notifying it of that info.
I made the changes Mark suggested (except for the new vs. PR_NEW since we use
new in other places too for events, and as long as we're using delete to delete
them, which we do, then it's ok) and checked this in on the trunk.
Whiteboard: [HAVE FIX] → [FIXED ON TRUNK]
Keywords: nsBranch
Is the testcase supposed to work at all?  With build 2001071104 on Win2k (SP2), 
the testcase doesn't crash the browser (yay!), but it also doesn't do a damned 
thing except display the image.  The opacity is not decreased whatsoever.

Jake
Adding Trunk & N610 [@ nsScriptSecurityManager::GetPrincipalAndFrame] to summary 
for tracking.  This was a topcrasher on the Trunk, and I've crashed with the 
latest N610 branch builds from yesterday and today.  Looks like we got enough 
info on this one, so I'm not going to post my Talkback report.
Summary: decreasing -moz-opacity/MozOpacity from 100% doesn't work -infinite recursion] → decreasing -moz-opacity/MozOpacity from 100% doesn't work -infinite recursion] - Trunk & N610 [@ nsScriptSecurityManager::GetPrincipalAndFrame]
Jake, the testcase doesn't work, but that's a different bug, feel free to file a
new bug on layout about that, this bug is only about crashing when the testcase
is loading.
just an fyi.  I'm thinking that the testcase attached to this bug may not be 
working because of bug 87485.

Jake
I queried Talkback for this crash, and only found 3 crashes with recent Branch 
builds.  There were no crashes with the MozillaTrunk (so that verifies the fix 
worked on the Trunk). There were also 3 crashes with M091/N610B1.

Here is a summary of one crash with Netscape6.10B1:
Incident ID 32798301
Stack Signature nsScriptSecurityManager::GetPrincipalAndFrame 5191ff18
Bug ID
Trigger Time 2001-07-11 22:29:15
User Comments I was getting ready to run an applet and was prompted to install 
the Java 2 runtime environment. went to re-open the applet and was shut down. 
Sent to NQFA.
Build ID 2001060713
Product ID Netscape6.10B1
Platform ID Win32

And the 3 N610 branch crashes were mine...here is the one of them:

Incident ID 32875111
Stack Signature nsScriptSecurityManager::GetPrincipalAndFrame 911db6e8
Bug ID
Trigger Time 2001-07-13 16:46:35
User Comments tried opening the test case in bug 66022
Build ID 2001071306
Product ID Netscape6.10
Platform ID Win32

The stack is really long, so I left it out.  If you need it, just query for the 
Incident ID...or let me know.  Thanks.

Also, I noticed that the original crash was reported with the 
nsScriptSecurityManager::CheckPropertyAccessImpl stack signature...I did a quick 
search for that and only found 2 incidents:

Incident ID 32790745 
Build 2001071106 Netscape6.10 Windows NT 4.0 build 1381 2001-07-11 18:18:10 
nsScriptSecurityManager::CheckPropertyAccessImpl 76b55350 2055 2055 bug 66022 

Incident ID 32418901 
Build 2001060713 Netscape6.10B1 Windows NT 5.0 build 2195 2001-07-02 02:45:56 
nsScriptSecurityManager::CheckPropertyAccessImpl 0256129b 1540 1752

That's about all I could dig up with Talkback.
Based on the talkback digging by Jay (thanks a lot for your help), removing
nsBranch and topcrash keyword.

Marking fixed because the fix is on the trunk.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Keywords: nsBranch, topcrash
Resolution: --- → FIXED
I'm not sure this should be closed. The original reporter does not mention
anything about a crash (not that there was none). If somebody did file another
bug on the -moz-opacity not working please mention it here. I cannot find it
anywhere.
Lets leave this one closed since it was morphed into a bug about the crash, feel
free to open up a new Layout bug on the problem with opacity on images.
reported bug 92282 to deal with the original non-crash problem...

jake
I'm reopening this bug :-(

Currently, the attached test case causes mozilla to hang because the onLoad
handler for the image is fired *each* time the 'MozOpacity' style is changed.

What's happening is that image onLoad handlers are being incorrectly fired each
time the associated image frame is recreated (due to style changes)...

-- rick
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Whiteboard: [FIXED ON TRUNK]
Sending to image lib based on previous comments
Assignee: jst → pavlov
Status: REOPENED → NEW
Component: Style System → ImageLib
QA Contact: ian → tpreston
back to style system...
Assignee: pavlov → dbaron
Component: ImageLib → Style System
QA Contact: tpreston → ian
why are we recreating the frame?  that seems bad.
Assignee: dbaron → jst
nsbeta1-

Before you renominate, please query bugs marked nsbeta1+ keyword with [ADT# RTM]
in status whiteboard (where # is a number between 1 and 3) and make sure that
this bug is at least as important as those.
Keywords: nsbeta1nsbeta1-
Target Milestone: mozilla0.9.3 → ---
We recreate the frame because we suddenly find we need to make a view for it, to
handle the translucency.

There are times when we need to tear down frames and rebuild them to handle
style changes. This should not be triggering onload handlers. Perhaps image
loading --- or some part of it --- should be moved to the content side?
Depends on: 83774
Blocks: 93015
Keywords: mozilla1.0
By the definitions on <http://bugzilla.mozilla.org/bug_status.html#severity> and
<http://bugzilla.mozilla.org/enter_bug.cgi?format=guided>, crashing and dataloss
bugs are of critical or possibly higher severity.  Only changing open bugs to
minimize unnecessary spam.  Keywords to trigger this would be crash, topcrash,
topcrash+, zt4newcrash, dataloss.
Severity: normal → critical
Attachment #22999 - Attachment is obsolete: true
Fixed by bug 83774
Status: NEW → RESOLVED
Closed: 23 years ago21 years ago
Resolution: --- → FIXED
Crash Signature: [@ nsScriptSecurityManager::GetPrincipalAndFrame]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: