[webkit-dev] enhancement - html hole element

Julien Isorce julien.isorce at gmail.com
Mon Sep 22 02:34:14 PDT 2014


Hi,

Thx for your replies!

We also had the solution based on plugin. But we prefer to not use plugins
if possible.

*Some details about our hole element implementation:

We have created a dedicated TextureMapperHoleBackingStore (which actually
could be integrated into TextureMapperSurfaceBackingStore).
So we call this GraphicsLayer::setContentsToPlatformLayer function from
RenderLayerBacking.cpp. I.e, we have put a new case: “if render().isHole()”
at the beginning of the existing black: “if render().isEmbeddedObject ()
else if render(). isVideo() else if render().isAcceleratedCanvas()” in
“RenderLayerBacking::updateGraphicsLayerConfiguration()”.
Note that the canvas case happens only if WEB_GL or ACCELERATED_2D_CANVAS
is enabled so moving the hole to video element is probably a better option.

We have validated it on upstream WebKitGtk and WebKitEfl, and the code we
put in WebKit is the same for both platforms.

* It makes sense to move this work to <video>. So instead of having a new
tag,  we suggest a new style value: <video
style=”background=-webkit-hole;”>
It will also simplify the diff a lot.

Comments are welcome.


On 19 September 2014 21:43, José Dapena Paz <jdapena at igalia.com> wrote:

> El jue, 18-09-2014 a las 12:07 -0700, Simon Fraser escribió:
>
> > I don’t think it’s appropriate to add <hole> to WebKit.
> >
> > <hole> is really just adapting to a limitation of the platform’s
> > compositing architecture. More powerful hardware like computers and
> > smartphones are able to composite video above and below web content,
> > which is achieved in WebCore via the accelerated compositing code
> > path. I don’t think it’s appropriate to burden the platform with an
> > element that only applies on power-limited hardware.
> >
> > The right solution for a WebKit implementation would be to solve this
> > via the accelerated composting code. Just use a <video> or <object> in
> > your markup, then implement the hole-punching via the GraphicsLayer
> > subsystem.
>
> +1. Implementing punching hole with the integration of GraphicsLayer and
> MediaPlayer works well for the videos. Same for plugins.
>
> I see the punching hole is platform specific. No need for a new HTML
> tag.
>
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-dev/attachments/20140922/cac010e3/attachment.html>


More information about the webkit-dev mailing list