diff options
Diffstat (limited to 'WebCore/bindings/v8/ScriptController.cpp')
-rw-r--r-- | WebCore/bindings/v8/ScriptController.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/WebCore/bindings/v8/ScriptController.cpp b/WebCore/bindings/v8/ScriptController.cpp index 48c5115..85af072 100644 --- a/WebCore/bindings/v8/ScriptController.cpp +++ b/WebCore/bindings/v8/ScriptController.cpp @@ -51,7 +51,6 @@ #include "npruntime_priv.h" #include "NPV8Object.h" #include "ScriptSourceCode.h" -#include "ScriptState.h" #include "Widget.h" #include "XSSAuditor.h" @@ -61,6 +60,15 @@ namespace WebCore { +void ScriptController::initializeThreading() +{ + static bool initializedThreading = false; + if (!initializedThreading) { + WTF::initializeThreading(); + initializedThreading = true; + } +} + void ScriptController::setFlags(const char* string, int length) { v8::V8::SetFlagsFromString(string, length); @@ -96,7 +104,6 @@ ScriptController::ScriptController(Frame* frame) , m_sourceURL(0) , m_processingTimerCallback(false) , m_paused(false) - , m_scriptState(new ScriptState(frame)) , m_proxy(new V8Proxy(frame)) #if ENABLE(NETSCAPE_PLUGIN_API) , m_windowScriptNPObject(0) @@ -186,9 +193,14 @@ bool ScriptController::processingUserGesture() const return false; } -void ScriptController::evaluateInNewWorld(const Vector<ScriptSourceCode>& sources, int extensionGroup) +void ScriptController::evaluateInIsolatedWorld(unsigned worldID, const Vector<ScriptSourceCode>& sources) +{ + m_proxy->evaluateInIsolatedWorld(worldID, sources, 0); +} + +void ScriptController::evaluateInIsolatedWorld(unsigned worldID, const Vector<ScriptSourceCode>& sources, int extensionGroup) { - m_proxy->evaluateInNewWorld(sources, extensionGroup); + m_proxy->evaluateInIsolatedWorld(worldID, sources, extensionGroup); } void ScriptController::evaluateInNewContext(const Vector<ScriptSourceCode>& sources, int extensionGroup) @@ -202,12 +214,7 @@ ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode) LOCK_V8; String sourceURL = sourceCode.url(); - if (sourceURL.isNull() && !m_XSSAuditor->canEvaluateJavaScriptURL(sourceCode.source())) { - // This JavaScript URL is not safe to be evaluated. - return ScriptValue(); - } - - if (!sourceURL.isNull() && !m_XSSAuditor->canEvaluate(sourceCode.source())) { + if (!m_XSSAuditor->canEvaluate(sourceCode.source())) { // This script is not safe to be evaluated. return ScriptValue(); } @@ -343,7 +350,7 @@ PassScriptInstance ScriptController::createScriptInstanceForWidget(Widget* widge return V8ScriptInstance::create(wrapper); } -void ScriptController::cleanupScriptObjectsForPlugin(void* nativeHandle) +void ScriptController::cleanupScriptObjectsForPlugin(Widget* nativeHandle) { PluginObjectMap::iterator it = m_pluginObjects.find(nativeHandle); if (it == m_pluginObjects.end()) |