Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=21970
        Make MessagePort event dispatch work in workers

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
        (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
        (WebCore::JSDOMGlobalObject::findJSEventListener):
        (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
        (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
        (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
        (WebCore::JSDOMGlobalObject::jsEventListeners):
        (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
        (WebCore::JSDOMGlobalObject::jsUnprotectedEventListeners):
        (WebCore::JSDOMGlobalObject::jsUnprotectedInlineEventListeners):
        (WebCore::JSDOMGlobalObject::setCurrentEvent):
        (WebCore::JSDOMGlobalObject::currentEvent):
        (WebCore::toJSDOMGlobalObject):
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
        (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
        (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
        * bindings/js/JSDOMWindowBase.h:
        Moved event listener tracking from JSDOMWindow to JSDOMGlobalObject.

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSAbstractEventListener::handleEvent):
        (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
        (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
        (WebCore::JSUnprotectedEventListener::globalObject):
        (WebCore::JSUnprotectedEventListener::clearGlobalObject):
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::~JSEventListener):
        (WebCore::JSEventListener::globalObject):
        (WebCore::JSEventListener::clearGlobalObject):
        (WebCore::JSLazyEventListener::JSLazyEventListener):
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/JSEventListener.h:
        (WebCore::JSUnprotectedEventListener::create):
        (WebCore::JSEventListener::create):
        (WebCore::JSLazyEventListener::create):
        Changed to use JSDOMGlobalObject and ScriptExecutionContext.

        * bindings/js/JSMessagePortCustom.cpp:
        (WebCore::JSMessagePort::startConversation):
        (WebCore::JSMessagePort::addEventListener):
        (WebCore::JSMessagePort::removeEventListener):
        (WebCore::JSMessagePort::setOnmessage):
        (WebCore::JSMessagePort::setOnclose):
        Updated bindings to work with JSDOMGlobalObject. Next step is to make code generator emit
        such code, and stop using a custom implementation for JSMessagePort inline event handler
        getters and setters.

        * dom/Document.cpp:
        (WebCore::Document::virtualURL):
        * dom/Document.h:
        * dom/ScriptExecutionContext.h:
        Expose url() method on ScriptExecutionContext (necessary for compiling scripts in
        JSLazyEventListener).



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
11 files changed