PassRefPtr<JSLazyEventListener> createAttributeEventListener(Frame* frame, const QualifiedName& name, const AtomicString& value) { if (!frame) return 0; if (value.isNull()) return 0; ScriptController* scriptController = frame->script(); if (!scriptController->canExecuteScripts(AboutToExecuteScript)) return 0; TextPosition position = scriptController->eventHandlerPosition(); String sourceURL = frame->document()->url().string(); JSObject* wrapper = toJSDOMWindow(frame, mainThreadNormalWorld()); return JSLazyEventListener::create(name.localName().string(), eventParameterName(frame->document()->isSVGDocument()), value, 0, sourceURL, position, wrapper, mainThreadNormalWorld()); }
PassRefPtr<JSLazyEventListener> createAttributeEventListener(Node* node, const QualifiedName& name, const AtomicString& value) { ASSERT(node); if (value.isNull()) return 0; TextPosition position = TextPosition::minimumPosition(); String sourceURL; // FIXME: We should be able to provide accurate source information for frameless documents, too (e.g. for importing nodes from XMLHttpRequest.responseXML). if (Frame* frame = node->document()->frame()) { ScriptController* scriptController = frame->script(); if (!scriptController->canExecuteScripts(AboutToExecuteScript)) return 0; position = scriptController->eventHandlerPosition(); sourceURL = node->document()->url().string(); } return JSLazyEventListener::create(name.localName().string(), eventParameterName(node->isSVGElement()), value, node, sourceURL, position, 0, mainThreadNormalWorld()); }