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