As of this mornings build, wallet is busted in apprunner. In particular, the code in nsBrowserAppCore.cpp which gets the shell to pass on to the wallet code is crashing. Here is the code: shell = nsnull; nsIPresShell* shell; nsCOMPtr<nsIWebShell> webcontent; mWebShell->FindChildWithName(nsAutoString("content").GetUnicode(), *getter_AddRefs(webcontent)); nsCOMPtr<nsIWebShell> webcontent2; webcontent->ChildAt(1, (nsIWebShell*&)webcontent2); and the crash is occurring on the last line. It says I'm dereferencing a NULL nsCOMPtr.
As a result of my reporting this, rickg found a problem and made a change to nsFrameFrame.cpp and checked it in this evening. With that change it no longer crashes but it doesn't work either. The value of shell that is being computed on the very next line is coming out to be null which is incorrect. Here is the code again (the line marked with the @ is where it crashed before rickg's change): shell = nsnull; nsIPresShell* shell; nsCOMPtr<nsIWebShell> webcontent; mWebShell->FindChildWithName(nsAutoString("content").GetUnicode(), *getter_AddRefs(webcontent)); nsCOMPtr<nsIWebShell> webcontent2; @ webcontent->ChildAt(1, (nsIWebShell*&)webcontent2); shell = GetPresShellFor(webcontent2);
And I forgot to mention -- this bug is critical because it is completely blocking any further work on wallet implementation.
it rickg the right assignee for this?
Rick Gessner wrote: > > So I can't tell you why it's broken, but I can tell you what's wrong > (in fact I fixed it and checked it in). > The problem is that the webshell whose type is webShellContent did not > get it's mName field set. > When Steve Morse's code tried to find a webshell by name, it failed of > course. > > In the nsFrameFrame.cpp file, I added a call to the webshell that is > being constructed to properly set it's name. > I'm puzzled as to why SetNewWebShellInfo() was not being called on > this webshell. Perhaps Chris Karnaze or Nisheeth can respond. > > file: mozilla/layout/html/src/nsFrameFrame.cpp > > Rick
Status: NEW → RESOLVED
Last Resolved: 19 years ago
Resolution: --- → FIXED
OK, this is fixed now, thanks to hyatt. Problem was the removal of names from the windows in navigator.xul. The fix was to pass the window itself as an argument from the xul to the wallet code, thereby making the wallet code independent of future changes to the xul (this is the second time that a xul change busted wallet). With hyatt's help I was able to make the necessary fixes and checked them in.
verified in 4/26 builds, wallet no longer busted.
Component: Form Manager → Form Manager
Product: Core → Toolkit
QA Contact: paulmac → form.manager
You need to log in before you can comment on or make changes to this bug.