Closed Bug 156712 Opened 22 years ago Closed 21 years ago

Webclient can't do File->New Window on Unix

Categories

(Core Graveyard :: Java APIs to WebShell, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: edburns, Assigned: edburns)

Details

Attachments

(1 file)

REPRODUCIBLE: Always

Steps to Reproduce:

1. Start Webclient 1.2 on Linux

2. Do File->New Window

3. Observe that a new webclient window comes up, but the client area is grey.

Here is console output:

Creating new EmbeddedMozillaImpl window
constructed with 
binDir: /home/edburns/Projects/mozilla/MOZILLA_0_9_9_BRANCH/mozilla/dist/bin 
url: http://www.mozilla.org/projects/blackwood/webclient/
in BrowserControlCanvas setBounds: x = 0 y = 0 w = 640 h = 480
native library does implement webclient.WindowControl
Can't setBounds(java.awt.Rectangle[x=0,y=0,width=639,height=479]) null
Init the baseWindow
Create the BaseWindow...
WEBSHELL+ = 2
Creation Done.....
Show the webBrowser
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
###!!! ASSERTION: attemping to process events on the wrong 
thread: 'correctThread', file nsEventQueue.cpp, line 372
###!!! Break: at file nsEventQueue.cpp, line 372
in BrowserControlCanvas setBounds: x = 6 y = 76 w = 628 h = 354
native library does implement webclient.Navigation
native library does implement webclient.CurrentPage
native library does implement webclient.History
native library does implement webclient.EventRegistration
debug: edburns: got Bookmarks instance
+++++++++++++++++++++ Thread Id ---- 0x81b7e90

pldhash: for the table at address 0x0x83caacc, the given entrySize of 28 
probably favors chaining over double hashing.
debug: edburns: Currently Viewing: 
http://www.mozilla.org/projects/blackwood/webclient/
pldhash: for the table at address 0x0x83c1a1c, the given entrySize of 28 
probably favors chaining over double hashing.
debug: edburns: STATE_TRANSFERRING
Meta 
Meta 
Meta 
Meta 
Meta 
Meta 
Meta 
Meta 
Meta 
Meta
Assignee: joe.chou → edburns
reassign
I accept.
Status: NEW → ASSIGNED
I'm having a terrible time debugging this on linux.  Even after closely heeding
the debugging-mozilla-on-linux FAQ, I still can't set breakpoints.  I think it
has to do with the interaction of mozilla and java.  My normal approach is to
insert this before the code I want to debug:

    pid_t pid = getpid();
    printf("++++++++++++++++debug: edburns: pid is: %d\n", pid);
    sleep(7);

Then recompile.  Then start gdb on the java executable:

/usr/java/jdk1.3.1_03/bin/i386/native_threads/java

After gdb starts, I do set auto-solib-add 0.

Then I run the webclient from another command line.

When the sleep is hit, I enter

attach <pid> in gdb.

After it attaches, I do shar webclient.

Then I can set breakpoints.  However, when I do "c" to continue, the program
just runs glacially.  

Ok, so that approach didn't work.

I then wrote a shim c++ program which execv's java with the necessary arguments.
 This shim program calls into a no-op webclient method, so I can set breakpoints
in webclient code.  That works fine, but when I do a "c" to continue, I get all
these messages about "can't find LWP 9067" or some such.  No luck there.

I don't know where to go from here.  Can someone please help?

Ed
Attached patch patchSplinter Review
Making GtkBrowserControlCanvas::firstTime static caused this issue - the
reparentWindow never gets called once the first window popped up.
checked in!
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.