summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js/JSInjectedScriptHostCustom.cpp')
-rw-r--r--WebCore/bindings/js/JSInjectedScriptHostCustom.cpp36
1 files changed, 22 insertions, 14 deletions
diff --git a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp b/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
index 3db894d..8bfb8a3 100644
--- a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
+++ b/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
* Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
- * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2010 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -48,6 +48,7 @@
#include "InspectorController.h"
#include "InspectorResource.h"
#include "JSDOMWindow.h"
+#include "JSDOMWindowCustom.h"
#include "JSNode.h"
#include "JSRange.h"
#include "Node.h"
@@ -67,17 +68,17 @@
#if ENABLE(JAVASCRIPT_DEBUGGER)
#include "JavaScriptCallFrame.h"
-#include "JavaScriptDebugServer.h"
#include "JSJavaScriptCallFrame.h"
+#include "ScriptDebugServer.h"
#endif
using namespace JSC;
namespace WebCore {
-static ScriptObject createInjectedScript(const String& source, InjectedScriptHost* injectedScriptHost, ScriptState* scriptState, long id)
+ScriptObject InjectedScriptHost::createInjectedScript(const String& source, ScriptState* scriptState, long id)
{
- SourceCode sourceCode = makeSource(source);
+ SourceCode sourceCode = makeSource(stringToUString(source));
JSLock lock(SilenceAssertionsOnly);
JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
JSValue globalThisValue = scriptState->globalThisValue();
@@ -91,9 +92,10 @@ static ScriptObject createInjectedScript(const String& source, InjectedScriptHos
return ScriptObject();
MarkedArgumentBuffer args;
- args.append(toJS(scriptState, globalObject, injectedScriptHost));
+ args.append(toJS(scriptState, globalObject, this));
args.append(globalThisValue);
args.append(jsNumber(scriptState, id));
+ args.append(jsString(scriptState, String("JSC")));
JSValue result = JSC::call(scriptState, functionValue, callType, callData, globalThisValue, args);
if (result.isObject())
return ScriptObject(scriptState, result.getObject());
@@ -118,10 +120,9 @@ JSValue JSInjectedScriptHost::databaseForId(ExecState* exec, const ArgList& args
#endif
#if ENABLE(JAVASCRIPT_DEBUGGER)
-
JSValue JSInjectedScriptHost::currentCallFrame(ExecState* exec, const ArgList&)
{
- JavaScriptCallFrame* callFrame = impl()->currentCallFrame();
+ JavaScriptCallFrame* callFrame = ScriptDebugServer::shared().currentCallFrame();
if (!callFrame || !callFrame->isValid())
return jsUndefined();
@@ -134,7 +135,6 @@ JSValue JSInjectedScriptHost::isActivation(ExecState*, const ArgList& args)
JSObject* object = args.at(0).getObject();
return jsBoolean(object && object->isActivationObject());
}
-
#endif
JSValue JSInjectedScriptHost::nodeForId(ExecState* exec, const ArgList& args)
@@ -223,15 +223,23 @@ InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* scriptState)
if (injectedScript)
return InjectedScript(ScriptObject(scriptState, injectedScript));
- ASSERT(!m_injectedScriptSource.isEmpty());
- ScriptObject injectedScriptObject = createInjectedScript(m_injectedScriptSource, this, scriptState, m_nextInjectedScriptId);
- globalObject->setInjectedScript(injectedScriptObject.jsObject());
- InjectedScript result(injectedScriptObject);
- m_idToInjectedScript.set(m_nextInjectedScriptId, result);
- m_nextInjectedScriptId++;
+ ASSERT(!m_injectedScriptSource.isEmpty());
+ pair<long, ScriptObject> injectedScriptObject = injectScript(m_injectedScriptSource, scriptState);
+ globalObject->setInjectedScript(injectedScriptObject.second.jsObject());
+ InjectedScript result(injectedScriptObject.second);
+ m_idToInjectedScript.set(injectedScriptObject.first, result);
return result;
}
+bool InjectedScriptHost::canAccessInspectedWindow(ScriptState* scriptState)
+{
+ JSLock lock(SilenceAssertionsOnly);
+ JSDOMWindow* inspectedWindow = toJSDOMWindow(scriptState->lexicalGlobalObject());
+ if (!inspectedWindow)
+ return false;
+ return inspectedWindow->allowsAccessFromNoErrorMessage(scriptState);
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)