r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Plugin-2] Browser Plugins

Pekr
10-May-2006
[634x6]
JoshM: please go to plugin-1 group, scroll up a bit to find my bold 
messages, and read on a bit, there are some findings. To post some 
notes - probably the most significant link is - 

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


The plugin extension adobe, mozilla, apple, opera, macromedia and 
sun agreed upon is npruntime

How to host NS plug-ins in IE:

http://www.mozilla.org/projects/plugins/plugin-host-control.html
http://www.mozilla.org/projects/plugins/npruntime.html
does not npruntime extension allow for both the ability to call into 
plug-in (being scriptable from the browser pov - probably java-script) 
and to access browser objects? Would be probably nice if rebol plug-in 
would support such new calls too ....
couldn't ECMAScript's 'eval be used for kind of 'do-browser? http://www.devguru.com/technologies/ecmascript/quickref/javascript_index.html
.... I sent privately my findings regards get-net-info being outdated 
and how control panel/internet settings/proxy influences registry 
keys ....
privately to JoshM ..... :-)
Volker
10-May-2006
[640]
Networking: as far as the browser can do the same, i would use browsers 
io. Or is it that much slower than rebols handler? Advantages are: 
proxy, cache. Maybe there are some extensions people like, about 
adds or blacklist or whatever? if such things exists they would be 
shared too. Its security , and a computer which knows my "no"s looks 
smarter.
Pekr
10-May-2006
[641x3]
that is questionable, Volker. The thing is - if you "limit" (or extend 
- https) Rebol's functionality to that of browser - do we talk rebol 
hjere anymore?
proxy can be imo solved by importing settings. We need to find out, 
how to query browser for its settings etc.
... still we need imo ability to use networking/security model of 
browser, for those who need it (networking via browser). The question 
is with security - should plug-in allow default rebol security? That 
is the question ....
JoshM
10-May-2006
[644x4]
Proxy settings: I think the simplest thing to do here is to modify 
whatever REBOL code is detecting the proxy settings to import the 
automatic proxy configuration script. REBOL is far more suited to 
parsing text files and interpreting information than C code. As a 
side note, we're not importing any settings via the plugin itself, 
we're just letting REBOL do whatever it does normally.
Browser networking: I could be completely out of my mind, but I'm 
pretty sure that the browser sets up and tears down connections with 
each HTTP request. In other words, there's no "open connection" that 
we can just tap into -- the browser is initiating new requests for 
each page. To move to an architecture like that for plugin networking 
calls doesn't make much sense to me.......maybe I'm mis-understanding....
Pekr: if Mozilla implements eval, then yes.
Mozilla: I'm looking at npruntime now. Looks interesting.
Pekr
10-May-2006
[648]
JoshM: eval is ECMA script (java script) facility, so mozilla should 
have it. In fact, the idea came from the old plug-in group, where 
Micha posted some code which was supposed to work, should I find 
it?
JoshM
10-May-2006
[649x3]
Mozilla: I think the problem with hosting the Mozilla control in 
IE with a wrapper is two-fold:

 (1) one more wrapper layer slows things down (a problem for high-performance 
 apps, e.g. graphics-intensive)

 (2) according to that page, there's no scripting support. that's 
 a major bummer because we need at least do-browser, not to mention 
 the possibility of DOM access.
Pekr: sure. thanks.
Mozilla scripting: As a side note, right now we're implementing scripting 
via xpcon. I didn't know about this new npruntime model, so we may 
switch to that for the next version of the plugin.
Pekr
10-May-2006
[652]
ok, I thought that the wrapper allows that, but there is aparently 
some limitation .... well, at least, having ns plug-in seems to work 
for the rest of the world, getting npruntime support on-board would 
be nice addition too ...
JoshM
10-May-2006
[653x3]
Mozilla: This opens up a good discussion. What I really like about 
npruntime is the native access to the DOM. On IE, COM gives us that 
too. The problem/question is -- maybe you guys have ideas -- how 
to expose those C++ reference counted objects to REBOL clients?
to REBOL code, I should say
Only Carl might know the answer to that question, but at least you 
can see the problem :)
Cyphre
10-May-2006
[656]
Josh, thanks for explanation about the delayed events. What a pity 
you cannot improve this also in Rebol2.x version as this problem 
sheds bad light upon Rebol/View apps (which uses drag'n'drop and 
simmilar features).
JoshM
10-May-2006
[657x2]
Yes....we're looking into that. I'm sure there's a way.
There's always a way :)
Cyphre
10-May-2006
[659x2]
Henrik: event throtling: maybe you could use the event time filtering/compression 
made by Gabriele or Romano for that purpose? Or write your own.
Josh: so you basically need to replace WndProc handler with a plugin 
specific one right?
JoshM
10-May-2006
[661x2]
Well....the problem is that the plugin has to handle its own window 
events because of the COM architecture. And REBOL has to handle its 
own events for other reasons. Soo.....maybe instead of an invisible 
proxy window, we can make REBOL's window a real window that sits 
on top of the plugin window, then it would get its events directly.
That's what I'm thinking, anyway. This is still all prototype-stage.
Cyphre
10-May-2006
[663]
Yep, understood. That's probably why the current plugin also cannot 
detect 'activate and 'deactivate events when you are focusing/unfousing 
the browser window. Do you think this could be also improved? It 
is useful for application to know when user switched to other window 
than the one with running plugin so it could manage the /View GUI 
appropriately (focusing/unfocusing fields, areas etc.)
JoshM
10-May-2006
[664]
Yes...now the question is, does deactivate mean switching outside 
of the browser? or does deactivate meaning switching outside the 
plugin, i.e. to a HTML text box on the page?
Cyphre
10-May-2006
[665]
I think 'deactivate should mean that the plugin window is loosing 
the 'event focus' ie no mouse/keyboard events are detected. So I 
think it should yield the event in both cases.
JoshM
10-May-2006
[666x2]
agreed.
I'm surprised you're not getting this event already, because the 
plugin is passing WM_KILLFOCUS/WM_SETFOCUS to REBOL. i'll have to 
investigate that.
Cyphre
10-May-2006
[668]
In some browser you can focus/unfocus the plugin object using JS 
too so this should be also catched.(I hope this is the same event 
as when you click outside the plugin win)
JoshM
10-May-2006
[669]
we'll want to make that a test case when we implement this.
Cyphre
10-May-2006
[670]
I haven't checked it in the lates plugin version, but it didn't work 
in the odler one...I'll make simple test script so you can play with 
it.
JoshM
10-May-2006
[671x9]
thanks
Announcement: REBOL Technologies is pleased to release the beta-6 
version of REBOL/Plugin for Internet Explorer, which is based on 
REBOL/View 1.3.2!
For information about the plugin, and to install or upgrade to the 
1.3.2 plugin, please go to the following URL: http://www.rebol.com/web-plugin.html
This release is only an update to 1.3.2 -- no new features have been 
added.
Also, we have included information about the alpha version of REBOL/Plugin 
for Mozilla-based browsers. As we have mentioned before, this is 
a very early-stage release that contains numerous problems. Please 
do not use it on production machines.
We would love your feedback on both the IE and Mozilla releases. 
Please post specific feature requests and bugs in the corresponding 
checklists here on the Plugin world. And feel free to discuss everything 
here :)
Sorry, I should clarify: Please post in the "Plugin" checks here 
in the REBOL3 world.
It's been a long day. :)
Make that "checklists" Ahh. I need to get off the computer.
Volker
10-May-2006
[680x3]
networking: i would onlyuse browser forthe same things. if i do a 
"read http://*"in rebol, that is connect/read/disconnect too? If 
something need performance i would use own implementations. Although, 
IIRC when i check cgi-headers, i see usually "keep-alive" from the 
browser. But no expert there.
proxy-parsing: IIRC when i once looked, proxy-settings can be javascript 
which returns the right proxy.
ANd when i am awake again, i check out these plugins .)
Henrik
10-May-2006
[683]
cyphre, I already wrote my own event filtering, but had a bit of 
hope that it would be possible to do internally for R3. I just personally 
think it's a bit too high level a place to solve the problem.