[Webkit-unassigned] [Bug 20081] [Qt] Add support for windowless NPAPI plugins

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 17 01:07:55 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=20081


Girish Ramakrishnan <girish at forwardbias.in> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |girish at forwardbias.in




--- Comment #13 from Girish Ramakrishnan <girish at forwardbias.in>  2009-09-17 01:07:54 PDT ---
I am working on this bug. 

Quick status - I am currently working outside webkit and trying to fix the
problem faced by Marc. 

When backing store enabled, I see two approaches:
1. Provide plugin with a Drawable that already has content of Qt's backing
store. So, we just grab the backing store contents into a Drawable before the
plugin's paint event, give it to the plugin and after the plugin paint we put
the Drawable back in the backing store. I think, this will work well even if
use ARGB visuals but this involves copying back and forth will make it slow.
2. Make plugin paint directly to Qt's backing store. Will be much faster.

When backing store disabled, we can assume paint on screen. And make the plugin
draw directly to the window. This will flicker but they asked for it (as in
marc's patch).

I have been testing with the diamondx plugin (with a windowless patch from bug
137189 of mozilla). You can find the git repo here -
http://git.forwardbias.in/?p=diamondx.git;a=shortlog;h=refs/heads/windowless.

I have managed to get approach 1 to work outside webkit, remains to be seen if
it will work with webkit :) It's flicker free. I wrote a pure qt4 'host' that
loads a netscape plugin.
http://git.forwardbias.in/?p=npploader.git;a=shortlog;h=refs/heads/grab_bs.
It's _very_ hacky. Ideally, we should use QWindowSurface (which is exported but
private).

Also, the gdk code and Qt code use different X11 displays. So to sync the
painting in the drawable, I have to end up calling XSync :/

I am working on approach 2, but I am getting all sorts of gdk errors atm.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list