Usually, those clients call WebPage or WebFrame to access the data members.

For example:

ChromeClient::doSomething()
{
   m_page->doSomething();
}

-Yong

----- Original Message ----- From: "Adam Barth" <[email protected]>
To: "Yong Li" <[email protected]>
Cc: "WebKit Development" <[email protected]>
Sent: Thursday, October 22, 2009 3:25 PM
Subject: Re: [webkit-dev] virtual functions in ChromeClient and other clients


How would the class implementing ChromeClient hold any data members?
I guess we could use pimpl...

Adam


On Thu, Oct 22, 2009 at 12:20 PM, Yong Li <[email protected]> wrote:
Hi All,

ChromeClient and other clients defined in webkit are using a lot of WebCore
objects. So it seems impossible to provide a ChromeClient from another
binary other than webkit itself. In other words, ChromeClient is almost
always implemented in a static lib that's linked with WebCore together.

If that's true, why do we need those "virtual" functions? One reason might
be for this case:

class WebPage: public ChromeClient, public EditorClient, public ..... {
};

But I see most ports implement these clients with single classes. If we can
make this mandatory, then we can remove these "virtual" words from these
client interface, and then the compilers could make those functions "inline"
whenever suitable. I guess this could boost performance a little bit.

Best regards,

Yong Li
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev



_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to