[webkit-dev] RenderArena: Teaching an old dog new tricks
cevans at chromium.org
Wed Nov 14 15:19:21 PST 2012
On Tue, Nov 13, 2012 at 11:14 PM, Ryosuke Niwa <rniwa at webkit.org> wrote:
> On Tue, Nov 13, 2012 at 10:23 PM, Eric Seidel <eric at webkit.org> wrote:
>> RenderArena was a perf optimization for the rendering tree, which
>> hyatt imported from Mozilla 10 years ago:
>> The prevailing lore has long been that RenderArena is no longer
>> useful, ugly, and should be killed!
>> The (unfortunate?) reality is that we've failed to do so, despite
>> trying several times.
> I don't think we have failed. The messages posted on the thread don't
> indicate anyone has tried to delete the render arena recently. I support
> any attempts to remove it.
A first step might be to make it a platform define. For the Chromium
platform we'd leave the define "on" -- there are some nice security
properties we get from having the RenderObjects in their own spot. I'm
happy to go in to more details if you want, but it's similar (although not
identical) to the blog post linked by Brendan regarding Firefox.
Not all WebKit consumers need weight things the same way as the Chromium
port of course, but at least for us, the security win outweighs any quirks
> Since RenderArena is generic, the current plan to move it to WTF (as
>> by Chris Marrin suggested back in
>> clean up the code further, and investigate wider deployment (like to
>> the DOM tree) for the security benefit and possible perf win.
> How does this work when a node is adopted from one document to another?
> DOM arena (or whatever we call it) will not be tied to a document?
That's a possible implementation, and a simple one. I like simple, but it
does lead into questions along the lines of those asked by Maciej: are
there significant pathological conditions present that would not be present
with the original allocator? Do these conditions outweight the benefits?
> - R. Niwa
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the webkit-dev