The second argument of GtkMozEmbed's dom_key_* signal handlers will be a Mozilla::DOM::KeyEvent object,
which is a wrapper around an instance of Mozilla's nsIDOMKeyEvent interface.
This inherits from UIEvent.

Note: although <DOMImplementation|Mozilla::DOM::DOMImplementation>'s HasFeature('KeyEvents',
'2.0') (and '3.0' and '') claimed (on my system) that KeyEvents were not supported,
I found that you can in fact do key events.

The following constants are available to be compared with GetKeyCode.
You can access these either through the (mouse or key) event object,
like $event->DOM_VK_TAB,
export them all with use Mozilla::DOM::KeyEvent qw(:keycodes),
or export them individually.

See Event::InitEvent for more information.
This method is basically the same as InitEvent,
but with six (seven normally) extra arguments.
(XXX: add docs for args)

Note: I don't see how you can Create or QueryInterface an AbstractView,
and trying to pass in 0 or undef was just causing a segfault,
so I've omitted what would normally be the 4th argument of this method.
If someone can explain why you'd need it and how you'd use it,
then I can put it back in.