bool HTMLScriptRunner::requestPendingScript(PendingScript& pendingScript, Element* script) const { ASSERT(!pendingScript.element()); const AtomicString& srcValue = script->getAttribute(srcAttr); // Allow the host to disllow script loads (using the XSSAuditor, etc.) if (!m_host->shouldLoadExternalScriptFromSrc(srcValue)) return false; // FIXME: We need to resolve the url relative to the element. if (!script->dispatchBeforeLoadEvent(srcValue)) return false; pendingScript.adoptElement(script); // This should correctly return 0 for empty or invalid srcValues. CachedScript* cachedScript = m_document->cachedResourceLoader()->requestScript(srcValue, toScriptElement(script)->scriptCharset()); if (!cachedScript) { notImplemented(); // Dispatch error event. return false; } pendingScript.setCachedScript(cachedScript); return true; }
bool HTMLScriptRunner::requestPendingScript(PendingScript& pendingScript, Element* script) const { ASSERT(!pendingScript.element()); if (V8IsolatedContext::getEntered() != 0) { std::ostringstream wid; int worldID = V8IsolatedContext::getEntered()->getWorldID(); wid << worldID; std::string aclid = wid.str()+";"; std::string aclname = "ACL"; std::string ROACLname = "ROACL"; ExceptionCode ec; if (worldID!=0) { script->setAttribute("worldID",wid.str().c_str(),ec,worldID,false); script->setAttribute(aclname.c_str(),aclid.c_str(),ec,worldID,false); script->setAttribute(ROACLname.c_str(),aclid.c_str(),ec,worldID,false); } } const AtomicString& srcValue = script->getAttribute(srcAttr); // Allow the host to disllow script loads (using the XSSAuditor, etc.) if (!m_host->shouldLoadExternalScriptFromSrc(srcValue)) return false; // FIXME: We need to resolve the url relative to the element. if (!script->dispatchBeforeLoadEvent(srcValue)) return false; pendingScript.adoptElement(script); // This should correctly return 0 for empty or invalid srcValues. CachedScript* cachedScript = m_document->docLoader()->requestScript(srcValue, toScriptElement(script)->scriptCharset()); if (!cachedScript) { notImplemented(); // Dispatch error event. return false; } pendingScript.setCachedScript(cachedScript); return true; }