[webkit-dev] Clean way to allow delegates for PopupMenu?

Gustavo Sverzut Barbieri barbieri at profusion.mobi
Thu Apr 15 18:36:04 PDT 2010

Hello all,

I'm part of the EFL port team and we're implementing the PopupMenu,
however EFL is a different platform as for our port it is just a
state-full canvas, not relying on any widget set/toolkit, we do not
have the concept of a menu at all!

Looking at all existing implementations, they all go straight to
native platform menus. But we can't as we want to avoid such
dependencies. What we'd like to have is a delegate, that WebCore calls
the ChromeClient that is overloaded in WebKit, giving our View user a
callback with all data.

The good news is: we did it and it works quite well.

The bad news is: we cheated and include WebKit/efl/WebCoreSupport from
PopupMenuEfl.cpp, what a shame! (although some ports *cough qt*
include in WebCore defines from WebKit)

In order to have a clean design, we'd like to know the general opinion
on how to do it. From what I see Mac already defines a similar call in

        virtual void willPopUpMenu(NSMenu *) { }

in our case, we'd need:

        virtual void showPopupMenu(const IntRect& rect, FrameView*
view, int index) { }
        virtual void hidePopupMenu() { }

so our PopupMenuEfl.cpp will just proxy to these calls.

However, although Mac does that it may not be the best solution, so to
avoid endless patches to be discussed at bugzilla I'd like to know
your opinion on the best way so our patch is right from beginning.


Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
MSN: barbieri at gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

More information about the webkit-dev mailing list