diff options
Diffstat (limited to 'WebCore/bindings/js/SerializedScriptValue.cpp')
-rw-r--r-- | WebCore/bindings/js/SerializedScriptValue.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/WebCore/bindings/js/SerializedScriptValue.cpp b/WebCore/bindings/js/SerializedScriptValue.cpp index 90f8d7c..6d6fa21 100644 --- a/WebCore/bindings/js/SerializedScriptValue.cpp +++ b/WebCore/bindings/js/SerializedScriptValue.cpp @@ -736,18 +736,23 @@ struct DeserializingTreeWalker : public BaseWalker { return jsNumber(m_exec, value.asDouble()); case SerializedScriptValueData::DateType: return new (m_exec) DateInstance(m_exec, m_globalObject->dateStructure(), value.asDouble()); - case SerializedScriptValueData::FileType: + case SerializedScriptValueData::FileType: { if (!m_isDOMGlobalObject) return jsNull(); - return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), File::create(value.asString().crossThreadString())); + ScriptExecutionContext* scriptExecutionContext = static_cast<JSDOMGlobalObject*>(m_exec->lexicalGlobalObject())->scriptExecutionContext(); + ASSERT(scriptExecutionContext); + return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), File::create(scriptExecutionContext, value.asString().crossThreadString())); + } case SerializedScriptValueData::FileListType: { if (!m_isDOMGlobalObject) return jsNull(); RefPtr<FileList> result = FileList::create(); SerializedFileList* serializedFileList = value.asFileList(); unsigned length = serializedFileList->length(); + ScriptExecutionContext* scriptExecutionContext = static_cast<JSDOMGlobalObject*>(m_exec->lexicalGlobalObject())->scriptExecutionContext(); + ASSERT(scriptExecutionContext); for (unsigned i = 0; i < length; i++) - result->append(File::create(serializedFileList->item(i))); + result->append(File::create(scriptExecutionContext, serializedFileList->item(i))); return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), result.get()); } case SerializedScriptValueData::ImageDataType: { |