Closed Bug 58701 Opened 24 years ago Closed 24 years ago

timer events aren't being handled in embedding case.

Categories

(Core Graveyard :: Embedding: APIs, defect, P3)

x86
Other
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.8

People

(Reporter: jud, Assigned: adamlock)

References

Details

(Keywords: embed)

Attachments

(2 files)

we're not pumping timer events in embedding. subsequently HTTP meta refresh isn't working.
This also happens on gtk. if you try the embedding binary located: ftp.mozilla.org/pub/mozilla/nightly/2000-11-01-06-Mtrunk/ and try a site which tries a meta refresh, nothing will happen. However, if you run gtkEmbed from the dist directory, refreshes do happen. I think that this is because the nsappshell is present in this case.
I've just attached a little patch which causes WinEmbed to process low prioroty timer events in its message Q. This is *not* a fix for the real problem... Just a band-aid which allows browser buster to work in WinEmbed. -- rick
According to LXR the nsITimerQueue interface is *only* used by Windows (and OS2). So timers must be processed differently on Linux and Mac :-( -- rick
As for the linux dist which is produce part of the daily build, the problem is that I was missing the timer so. This was once built as a static lib, but now it is shared. This should be fix in monday's build.
a=valeski on adding the timer.so to the embed manifest.
Target Milestone: --- → mozilla0.6
-> pavlov
Assignee: rpotts → pavlov
*** Bug 51093 has been marked as a duplicate of this bug. ***
This is why winEmbed hangs. Apply attached patch to fix & collect data...
Severity: normal → critical
Keywords: embed
This is arguably a blocker. The problem is that timer events aren't being processed the same way as "regular" events. IMO, timer events should be the same.
er, so why is this assigned to me? the problem on linux was that it was missing the .so. Timer events should be getting processed as part of the gtk main loop so as long as that is running, there shouldn't be any problem. I have no idea how timers are handled on other platforms.
Updating QA Contact
QA Contact: jrgm → mdunn
With the above patch, winEmbed seems to get a bit further, but is also occasionally hanging while loading pages. I'll break into the debugger next time that happens and try to figure out what's going on.
r=valeski on the 01/10/01 19:33 patch.
Hey jud, if I understand correctly, `that patch ain't right'. (See rpotts comment on 2000-11-01.) Jud, I'm giving this bug back to you because it seems to be a win32-specific issue, and pavlov isn't going to fix it.
Assignee: pavlov → valeski
Depends on: 64992
understood, but it does start pumping the events for winEmbed (workaround - which I'll checkin).
No longer depends on: 64992
jud: you mentioned that this got broken when somebody else `fixed' event handling...could we get that person on the cc list for this bug? (Or at least xref with the bug whose fix broke this bug...)
Lowe, you out there?
cc'ing adam, who just added an NS_HandleEmbeddingEvent() call
Yes, winEmbed now calls NS_DoIdleEmbeddingStuff when its message queue is empty so it should process timer events. Give me a URL to try it out on and I'll tell you if it solves this problem or not. Note that I've only added these methods to Win32 - other platforms are still waiting for their implementation.
adam: I was seeing a problem with HTTP <META> refresh. If you can get behind the firewall, you'll see it at http://btek/cgi-bin/buster.cgi -- the first few URLs will load, and then it will `stall'.
winEmbed now appears to work fine with this URL, loading the pages without stalling. I think the problem is solved so marking this fixed. Reopen if you think it isn't.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Depends on: 44120
Reopening this bug for the time being and reassigning to me. I have a patch for the 100% CPU issue in the latest winEmbed and I want to be sure it still fixes stalled timers.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Reassign
Assignee: valeski → adamlock
Status: REOPENED → NEW
Target Milestone: mozilla0.6 → mozilla0.8
Status: NEW → RESOLVED
Closed: 24 years ago24 years ago
Resolution: --- → FIXED
Fix for 100% CPU usage has gone in. Marking fixed again
Correction: Changing QA contact for the Embed API bugs to David Epstein.
QA Contact: mdunn → depstein
David, try using this URL to verify <http://www.maubi.net/cgi-bin/buster.cgi>
Thanks Chris. I tried this "Browser Buster II" url out in the debuggable 20010820 build. Since winEmbed hasn't been supported in awhile (was getting a lot of asserts), I used mfcEmbed. cc'ing Chak to find out if mfcEmbed is fully supporting timer events. NS_DoIdleEmbeddingStuff() is used in mfcEmbed, but didn't see NS_HandleEmbeddingEvent(). This url cycles through about 10-15 web sites, visiting each site for 20-30 seconds. The last url is at American Airlines. In mfcEmbed, only got one assert at www.onlinecreditnow.com (it's happening in nsFocusController.cpp, which I think there's an open bug for). In the 6.1 mozilla trunk build 20010830, it stopped on the onlinecreditnow.com window. After closing it, it finished with American Airlines. Is this supposed to be the last url of this script?! It displays "500.list" in the top display area, so I thought maybe there are 500 urls to load. So it appears that the timer events are working except for this one glitch where it stopped loading. I won't verify this unless we're OK with these results.
verifying. the "glitch" above is probably a windowing issue and isn't related to timing.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: