Squeak Browser plugin source and arch

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Squeak Browser plugin source and arch

Brad Fuller
Sorry for double posting, I figure that not all squeakland people visit squeak-dev and vice versa.

I've been looking at the npsqueak source at: http://squeakvm.org/ and have a couple of questions.
First, I know nothing about how to make a browser plugin, but I'd like to learn. Second, I noticed that npsqueak exists only for unix and only for the Netscape browser. I didn't see the code under any other platform, or browser plugin for other browsers. Why is that? How can squeak  execute on other platforms and other browsers (Opera excluded as I heard that it uses the same plugin architecture as Mozilla) with out a plugin?

I guess that's a good place to start my questions. If there is documentation that you can point me to, I'd appreciate it. I see that Bert placed a comment in npunix.c:
 * At the official Netscape site there's only the PluginSDK30b5 for unix:
 *
 * !!! I had to add the missing URLNotify stuff here. If you find an official
 * !!! version of this file which has it, use it instead.
 * !!!        April 2000, Bert Freudenberg

which seems to strongly imply that there is little documentation. So, any help is much obliged.

thanks,

brad

--
Brad Fuller
Sonaural Audio Studio



Reply | Threaded
Open this post in threaded view
|

Re: Squeak Browser plugin source and arch

Bert Freudenberg-3
Am 02.06.2006 um 02:07 schrieb Brad Fuller:

> Sorry for double posting, I figure that not all squeakland people  
> visit squeak-dev and vice versa.

Cross-posting to vm-dev would make a lot more sense than squeakland.

> I've been looking at the npsqueak source at: http://squeakvm.org/ 
> and have a couple of questions.
> First, I know nothing about how to make a browser plugin, but I'd  
> like to learn.

So you actually just want to write your own plugin, which has nothing  
to do with Squeak?

> Second, I noticed that npsqueak exists only for unix and only for  
> the Netscape browser. I didn't see the code under any other  
> platform, or browser plugin for other browsers. Why is that? How  
> can squeak  execute on other platforms and other browsers (Opera  
> excluded as I heard that it uses the same plugin architecture as  
> Mozilla) with out a plugin?

Can't say for other platforms, I only wrote the unix plugin. All  
browsers on unix adhere to the Netscape plugin specification. So one  
plugin should wok for all, and indeed it does (modulo bugs in either  
the browser or the plugin).

> I guess that's a good place to start my questions. If there is  
> documentation that you can point me to, I'd appreciate it. I see  
> that Bert placed a comment in npunix.c:
>  * At the official Netscape site there's only the PluginSDK30b5 for  
> unix:
>  *
>  * !!! I had to add the missing URLNotify stuff here. If you find  
> an official
>  * !!! version of this file which has it, use it instead.
>  * !!!        April 2000, Bert Freudenberg
>
> which seems to strongly imply that there is little documentation.  
> So, any help is much obliged.

Well, Netscape simply stopped developer support a long time ago. I  
haven't checked if that has gotten better, though. There is  
documentation available at

        http://www.mozilla.org/projects/plugins/

and you might get answers in their forums.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: Squeak Browser plugin source and arch

Brad Fuller
Bert Freudenberg wrote:
> Am 02.06.2006 um 02:07 schrieb Brad Fuller:
>> Sorry for double posting, I figure that not all squeakland people
>> visit squeak-dev and vice versa.
> Cross-posting to vm-dev would make a lot more sense than squeakland.
I had a plugin question answered there so it seemed logical, especially
since the plugin comes from the Squeakland download

I get your point though, makes a lot of sense.

>> First, I know nothing about how to make a browser plugin, but I'd
>> like to learn. I've been looking at the npsqueak source at:
>> http://squeakvm.org/ and have a couple of questions.
> So you actually just want to write your own plugin, which has nothing
> to do with Squeak?

I want to learn more about the browser plugins for Squeak. I'd like to
see if streaming is possible. I don't know why squeak would be any
different than other plugins for streaming. I noticed that you return -1
for streaming in npsqueak (I assume NPP_WriteReady() is for streaming).
Any technical reason?

>
>> Second, I noticed that npsqueak exists only for unix and only for the
>> Netscape browser. I didn't see the code under any other platform, or
>> browser plugin for other browsers. Why is that? How can squeak
>> execute on other platforms and other browsers (Opera excluded as I
>> heard that it uses the same plugin architecture as Mozilla) with out
>> a plugin?
>
> Can't say for other platforms, I only wrote the unix plugin. All
> browsers on unix adhere to the Netscape plugin specification. So one
> plugin should wok for all, and indeed it does (modulo bugs in either
> the browser or the plugin).
I'm wondering if the other plugins are proprietary... perhaps people at
Squeakland.com (viewpoints) wrote the plugin? I replied to your msg
there asking this question (don't want these threads to become
complicated ;-) so I just asked that particular question and kept the
technical questions here as you suggest.)

>
>> I guess that's a good place to start my questions. If there is
>> documentation that you can point me to, I'd appreciate it. I see that
>> Bert placed a comment in npunix.c:
>>  * At the official Netscape site there's only the PluginSDK30b5 for
>> unix:
>>  *
>>  * !!! I had to add the missing URLNotify stuff here. If you find an
>> official
>>  * !!! version of this file which has it, use it instead.
>>  * !!!        April 2000, Bert Freudenberg
>>
>> which seems to strongly imply that there is little documentation. So,
>> any help is much obliged.
>
> Well, Netscape simply stopped developer support a long time ago. I
> haven't checked if that has gotten better, though. There is
> documentation available at
>
>     http://www.mozilla.org/projects/plugins/
>
> and you might get answers in their forums.
Thanks I found that last night. Found some docs, and some doesn't exist
as you mentioned.
I'm sure I'll have more questions as I look thru the docs and your code.

Thanks for the reply!

brad

Reply | Threaded
Open this post in threaded view
|

Re: Squeak Browser plugin source and arch

Bert Freudenberg-3
Am 02.06.2006 um 17:51 schrieb Brad Fuller:

> I want to learn more about the browser plugins for Squeak. I'd like to
> see if streaming is possible. I don't know why squeak would be any
> different than other plugins for streaming. I noticed that you  
> return -1
> for streaming in npsqueak (I assume NPP_WriteReady() is for  
> streaming).
> Any technical reason?

No, except that downloading the whole file and giving its handle to  
Squeak is a lot simpler. This way, we reuse the existing file support.

To learn how the plugin works, it might be best to recompile with the  
debug logging enabled (I'm not sure if that's the case in recent  
builds), then set the debug env var, run the browser, and trace the  
log along with the sources. You can ignore npunix.c, it's just the  
glue code from Netscapes SDK. The meat is in npsqueak.c (plugin) and  
sqUnixMozilla.c (vm).

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Self-bootstrapping environment for Squeak 7033

Pavel Krivanek
Hi,

mirrors are copies of classes that have prefix Xxx and don't have own data
like shared pools. If you have got such classes for whole system, you may
modify, study and shrink them. If you prepare source codes for new system
in the mirror's world, you can replace current souce codes in your image
with codes of mirrors and recompile it.

This is the way how to prepare very small images with no user interface
and this self-bootstrapping environment creates one. It was just announced
and this is only the updated version.

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Self-bootstrapping - some good and bad news

Pavel Krivanek
Bad: condenseChanges fix doesn't work well. If you try to find some string
in source codes, it fails.

Good: I have created ChangeSet subclass, that enables to file-out mirrors
(it has to get rid of inicialization of classes). So everybody can create
own version of mirrors now.

Bad: Now I'm not able to publish that, I'm on the official trip. Maybe on
Monday...

Good: I have created special versions of MCPackageInfo and MCPackage that
can produce Monticello package for mirrors so I hope that we will be able
to use public SqueakSource repository for this project.

Bad: If I try to load the generated package into the fresh image, it fails
in half. It seems that there's some problem with WideString because error
message shows half on the problematic method well and half of the method
with 4 bytes per character. The behaviour is same if I unzip the package
and try to load sources directly. I notice that the compressed package has
cca 2MB.

Bad: Currently I don't know how to get rid of inicialization part of
classes in package.

If we solve this problems, we can close phase 1) and we may start with
kernel cleanup.
There's no feedback from the leaders (only from Stef) so I have to ask: is
this the way how we want to develop Squeak 3.10?

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: Self-bootstrapping - some good and bad news

stéphane ducasse-2

> Bad: condenseChanges fix doesn't work well. If you try to find some  
> string
> in source codes, it fails.

apparently there is a fix on mantis. But until the 7 of June I have  
no time at all
for havretsing

>
> Good: I have created ChangeSet subclass, that enables to file-out  
> mirrors
> (it has to get rid of inicialization of classes). So everybody can  
> create
> own version of mirrors now.
>
> Bad: Now I'm not able to publish that, I'm on the official trip.  
> Maybe on
> Monday...
>
> Good: I have created special versions of MCPackageInfo and  
> MCPackage that
> can produce Monticello package for mirrors so I hope that we will  
> be able
> to use public SqueakSource repository for this project.
>
> Bad: If I try to load the generated package into the fresh image,  
> it fails
> in half. It seems that there's some problem with WideString because  
> error
> message shows half on the problematic method well and half of the  
> method
> with 4 bytes per character. The behaviour is same if I unzip the  
> package
> and try to load sources directly. I notice that the compressed  
> package has
> cca 2MB.
>
> Bad: Currently I don't know how to get rid of inicialization part of
> classes in package.
>
> If we solve this problems, we can close phase 1) and we may start with
> kernel cleanup.
> There's no feedback from the leaders (only from Stef) so I have to  
> ask: is
> this the way how we want to develop Squeak 3.10?

Ideally it would be good to declare to be uncompatible and remove a  
lot of
stuff that get in our way:
        - Etoy for example.
After the problem is really who has the time to do it and is willing  
to participate.


>
> -- Pavel
>