[Webkit-unassigned] [Bug 31232] [Qt] Windowed Plugins : Implement composited plugins for windowed mode

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 10 10:38:21 PST 2009


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





--- Comment #3 from Girish Ramakrishnan <girish at forwardbias.in>  2009-11-10 10:38:21 PDT ---
(In reply to comment #2)
> Can someone describe in a bit more detail what this bug seeks to implement, vs.
> what has been implemented in #18831 ?

Sure.

Flash (Netscape plugins really) works in two modes - windowed and windowless.
In the windowed mode, it expects a native window. In the windowless mode, it
can draw itself into a pixmap. By default, the mode is windowed. One needs to
use wmode=transparent or opaque (Flash specific) to make it windowless.

Whether the browser displays a plugin in windowed or windowless mode is a
decision made by the plugin. It cannot be enforced by the browser (In theory, a
browser can advertise only windowless mode but this causes Flash to crash).

In Qt, we have two different 'webkit' views 
1. QWebView, a widget. It is possible to XEmbed into a QWebView. 
2. We also have a QGraphicsWebView - this is an item in a 2d scene
(QGraphicsScene). Items can be transformed. So, it's not possible to use XEmbed
in this case. As a result, we only support windowless mode in a
QGraphicsWebView.

Now to the problem - When using youtube, the flash content enforces windowed
mode. As a result, youtube videos don't appear in QGraphicsWebView.

Solutions: 
1. We can either use XComposite/XDamage to get the contents of the plugin into
a Picture and render it into the QGraphicsWebView. (This bug addresses this
solution). (This approach is used in Fennec)
2. Inject wmode=transparent or similar into the dom/pass it to the plugin when
instantiating it. Since, we support windowless mode, youtube will appear in the
QGraphicsWebView.

We haven't decided yet which of the above is 'elegant'. This is still research.

-- 
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