Status

()

Toolkit
Form Manager
P3
critical
VERIFIED FIXED
19 years ago
10 years ago

People

(Reporter: Stephen P. Morse, Assigned: karnaze (gone))

Tracking

Trunk
x86
Windows NT
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

19 years ago
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.
(Reporter)

Comment 1

19 years ago
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);
(Reporter)

Updated

19 years ago
Severity: normal → critical
(Reporter)

Comment 2

19 years ago
And I forgot to mention -- this bug is critical because it is completely
blocking any further work on wallet implementation.

Updated

19 years ago
Assignee: chofmann → rickg

Comment 3

19 years ago
it rickg the right assignee for this?

Updated

19 years ago
Assignee: rickg → karnaze

Comment 4

19 years ago
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
(Reporter)

Updated

19 years ago
Status: NEW → RESOLVED
Last Resolved: 19 years ago
Resolution: --- → FIXED
(Reporter)

Comment 5

19 years ago
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.

Updated

19 years ago
Component: Apprunner → Autofill
QA Contact: 3853 → 3819

Updated

19 years ago
Status: RESOLVED → VERIFIED

Comment 6

19 years ago
verified in 4/26 builds, wallet no longer busted.

Updated

10 years ago
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.