Closed Bug 68907 Opened 24 years ago Closed 23 years ago

[BeOS Plug-in] implemented to read mime-types - get plugins work

Categories

(Core Graveyard :: Plug-ins, defect)

x86
BeOS
defect
Not set
major

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: VYA04230, Assigned: VYA04230)

References

Details

Attachments

(4 files)

Currently, plugins are not working under BeOS version of mozilla 'Bezilla'.
I implemented some to get plugins work.

I modified nsPluginsDirBeOS.cpp to handle supported mime-types by BeOS's way.
Also, I added BeOS implementation in ns4xPlugin.cpp, copied from XP_UNIX #ifdefs.

## result
I can get some plugins work.
Flash Player(Flashplugin.so) by GeneralCoffee(www.generalcoffee.com)
RealPlayer plug-in (plugin-Realplayer.so on BeOSR5 Pro version)
I installed by link these files to mozilla/dist/bin/plugins/ .

## remaining works
I set only MIME-types so far.
Descriptions and Extensions fields are left blank.

modified files:
  nsPluginsDirBeOS.cpp : modified nsPluginFile::GetPluginInfo() to read MIME types from plugin file's attributes
  ns4xPlugin.cpp : added BeOS implementation to ns4xPlugin::CreatePlugin()

this patch includes bug #67225 's  patch(id=23991)
Status: NEW → ASSIGNED
*** Bug 67225 has been marked as a duplicate of this bug. ***
Patches look ok so far. I'd remove the #ifdef DEBUG_edburns stuff though. Are
you planning on finishing the implementation (i.e. adding descriptions and
extensions) or leaving it as is?
I just implemented the remaining part.

I didn't know what format of "fExtensionArray" it should be when a mime has multiple extensions,
but after all, I figured out that it is comma separated, viewing source code. So I implemented as that.

I also set mime description and I believe I finished implementation. Can anyone review this patch?
Just so we are clear on this... the filling in of the field "info.fDescription" ( 
the description of the plugin) is still not implemented. I'm ok with this, as the 
patch is much better then what currently exists, but this should be taken care of 
at some point. r=bnesse.
Makoto: I followed your steps below, but couldn't get plugins to work yet - does
this work with build 2001022211 or do I have to compile from the latest sources?
Also, when your (brilliant!) patch is finished, it would be good to add a
"Help/About Plugins" menu that opens the page "about:plugins"...
This patch is not included in the official mozilla source tree yet.
So, to enable plugin, you should get source and patch to it.
Or, get a patched Bezilla binary from < http://bezilla.inetking.com >.

I think this patch is OK to check in.

As for the field "info.fDescription", I'm not sure the way 
I can get a description of a plug-in. 
So, if you know something about it, please tell me.
hmm.. the description is only for informative purposes, right? Why not hardcode
it in for now?
Another possibility might be to use AppFileInfo::GetVersionInfo() to get
version-number, short and long description of the plugin, if available.
For FlashPlayer, this would be possible, but RealPlayer does not have any infos
in the resource (because it's a library), so you could maybe fall back to
hardcoded information in that case...
The description is generally a 1 line string that the vendor adds describing 
their plugin. (It's a string resource on the Mac, probably on Windows as well.) 
Some random examples are:

RealPlayer(tm) LiveConnect-Enabled Plug-in
Shockwave Flash 5.0 r30
Adobe SVG Viewer for Macintosh
Macromedia Shockwave for Director Netscape plug-in, version 8.0
Plugins are detected now, but RealPlayer always crashes:
(sample-url: http://biz.yahoo.com/oo/010208/50753.html )

segment violation occurred
00000000 read_fault
mozilla-bin:sc
  frame         retaddr
fd001618   ed4b0a7c  nsPluginStreamListenerPeer::SetUpStreamListener(nsIChannel *, nsIURI *) + 00000264
fd001670   ed4b03b5  nsPluginStreamListenerPeer::OnStartRequest(nsIChannel *, nsISupports *) + 00000235
fd0016a4   ecca8130  nsHTTPFinalListener::OnStartRequest(nsIChannel *, nsISupports *) + 0000004c
fd0016bc   eccc71f6  InterceptStreamListener::OnStartRequest(nsIChannel *, nsISupports *) + 0000002e
fd0016dc   ecca7e58  nsHTTPServerListener::FinishedResponseHeaders(void) + 00000044
fd0016fc   ecca690e  nsHTTPServerListener::OnDataAvailable(nsIChannel *, nsISupports *, nsIInputStream *, unsigned int, unsigned int) + 00000416
fd001808   ecc67f20  nsOnDataAvailableEvent::HandleEvent(void) + 000000b4
fd00183c   ecc676ce  nsStreamObserverEvent::HandlePLEvent(PLEvent *) + 00000026
fd00184c   ec6fd487  PL_HandleEvent + 0000001f
fd001864   ec6fd3a3  PL_ProcessPendingEvents + 00000077
fd00187c   eca1e7b9  nsAppShell::Run(void) + 00000105
fd0018a8   ec9838a8  nsAppShellService::Run(void) + 00000024
fd0018b8   8000968b  main1(int, char **, nsISupports *) + 00000943
fd001a08   80009c9b  main + 0000011b
fd001a34   80006a05  _start + 00000061
mozilla-bin:regs
eax 00000000   ebp fd001618   cs 001b
edx 80657bf0   esi 80658190   ss 0023
ecx ed4cb380   edi 80797990   ds 0023
ebx ed4cca54   esp fd0015e0   es 0023
                              fs 38b3
eflags 00010246  eip 00000000
trap_no 0000000e  error_code 00000004
mozilla-bin:ps
PID  DEBUG NAME                              STATUS
707  curr  mozilla-bin                       semaphore
70a        BApplication                      semaphore
70c        moz-thread                        semaphore
710        timer roster                      semaphore
717        w>Yahoo - [audio] Analyst Insig   semaphore
71a        moz-thread                        semaphore
71c        select-thread                     semaphore
71d        select-thread                     semaphore
720        w>                                semaphore
728        select-thread                     semaphore
72d        team 181 debugtask                semaphore
mozilla-bin:
Moving to m0.9.1. makoto, can you meet this milestone?
Target Milestone: --- → mozilla0.9.1
any progress on this?  getting down near the point where
we will need to move it off the 0.9.1 list if it
doesn't look like it can land soon..
looks like no one is watching this bug.  unsetting target milestone.
Target Milestone: mozilla0.9.1 → ---
This bug IS watched infact, and Flash is working nicely, only Real makes problems.
The Yahoo-link is outdated now, but here's another one:
http://www.ptv.at/pte2rpm.pl.cgi?ptanr=010503003

A video should be started but nothing happens after it's resolved - Opera
correctly launches RealPlayer (externally) but it doesn't handle the stream
("PNR_FAIL").
A big problem here is that the RealPlayer included with BeOS 5 Pro is very
outdated now (version 7 or so, < G2), and so many pages with Real-content are
not handled anyway.

IMO no target-milestone necessary until a newer RealPlayer for BeOS sees the
light of day. What's the appropriate verdict for such a bug-status?
Sorry, time has passed...
I tried to apply the previous patch and it worked with my bezilla 0.9.1+.
I can view Flash pages and listen to Real Player audios but videos can't be 
viewed because the Real Player for BeOS doesn't support the newer video format.

But this video problem is not in the scope of this bug.
Bezilla can successfully launch some plugins and play something. So this bug is solved.
Whether the launched RealPlayer can or can't play some formats is not in the scope 
of this bug. (IMHO)

I modified the method to set info.fName and info.fDescription. And I think this is 
good to check-in. please review it.

FYI: This ON24 page contains many links to RealPlayer audio/videos.
http://biz.yahoo.com/oo/
in ns4xPlugin.cpp, I think you should return NS_ERROR_FAILURE rather than 
NS_ERROR_UNEXPECTED. I see that Mac returns FAILURE, but WIN & UNIX return 
UNEXPECTED. I believe FAILURE is more correct, but I won't force the issue. Maybe 
av has input?

Otherwise, patch looks solid. r=bnesse.
I agree with Brian, but don't think this will affect anything. One other thing, 
Unix version does some 'fancy' job with different types of separators. I don't 
know whether BeOS needs it too or not. Anyway, r=av
Brian, Andrei, thank you for comments.
As for the 'fancy' job with different types of separators, I think it's ok so far, 
because that type of plug-ins aren't currently available on BeOS.

And... Chris, can you commit my patch?
Or, can I get the permission to do that?
The patch has been checked in.

Makoto, you need need to follow the directions at
http://www.mozilla.org/hacking/getting-cvs-write-access.html in order to apply
for cvs write access.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
v
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

Created:
Updated:
Size: