[webkit-help] Help: Why js can't receive the event from c++

Liu Robin liu.samba at gmail.com
Wed Aug 8 02:35:18 PDT 2012

Hi, guys
I extend webkit a custom js object inherited from EventTarget (codes listed
below). When it fire a event, the registered js function receive
nothing(the js function hasn't been invoked).
I logged in c++ codes(see "LOGT_" below), and the output value "ec" is as
same as its initial value.
I also logged in EventTarget.cpp for "EventTarget::fireEventListeners"
function, the logs  show that the code
event);" is invoked.
I don't understand why the js callback function didn't be invoked while the
same js function was successfully invoked by js button object.
Any suggest is appreciated. Thank you.

module window {

    interface [
    ] SignalChannel {
        attribute EventListener onmessage;
        attribute EventListener onopen;

        void processSignalingMessage(in DOMString msg, in short

        void connectToServer(in DOMString ip, in short port);

        // EventTarget interface
        void addEventListener(in DOMString type,
                              in EventListener listener,
                              in [Optional] boolean useCapture);
        void removeEventListener(in DOMString type,
                                 in EventListener listener,
                                 in [Optional] boolean useCapture);
        boolean dispatchEvent(in Event event)

class SignalChannel : public RefCounted<SignalChannel>,  public EventTarget,
{   ....

void SignalChannel::OnSignedIn()
    sendMsgToJS(ON_SIGNEDIN, "");

void SignalChannel::sendMsgToJS(const int call_back_func_type, const String
    event = WebSocketMsgEvent::create(eventNames().messageEvent,
call_back_func_type, msg);
    context_->postTask(createCallbackTask(&start, this));

static void start(ScriptExecutionContext*, SignalChannel* obj)

void SignalChannel::run()
    int ec = -1;
    dispatchEvent(event, ec);
    LOGT_("SignalChannel::run, dispatchEvent(event), errorcode:%d", ec);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20120808/ac12933e/attachment-0001.html>

More information about the webkit-help mailing list