Virtual destructor ~WebPopupMenuProxyGtk calls cancelTracking(), which is overriden by WebKitPopupMenu. This is a bug, because when the destructor ~WebPopupMenuProxyGtk runs, the destructor ~WebKitPopupMenu has already been executed. Issue reported by Clang's scan-build: http://people.igalia.com/aperez/scan-build/webkitgtk-2.17.91+tartan/report-a28fd3.html
This does not seem easy to fix. Not sure what we can do here.
I'm guessing overriding the ~WebKitPopupMenu destructor to call WebKitPopupMenu::cancelTracking() itself could work. WebPopupMenuProxyGtk::cancelTracking() would be called twice, but it looks idempotent.
Let's follow the rule to not make any virtual function calls inside a constructor or destructor.