summaryrefslogtreecommitdiffstats
path: root/WebCore/inspector/InjectedScript.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-04-27 16:31:00 +0100
committerSteve Block <steveblock@google.com>2010-05-11 14:42:12 +0100
commitdcc8cf2e65d1aa555cce12431a16547e66b469ee (patch)
tree92a8d65cd5383bca9749f5327fb5e440563926e6 /WebCore/inspector/InjectedScript.cpp
parentccac38a6b48843126402088a309597e682f40fe6 (diff)
downloadexternal_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.zip
external_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.tar.gz
external_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.tar.bz2
Merge webkit.org at r58033 : Initial merge by git
Change-Id: If006c38561af287c50cd578d251629b51e4d8cd1
Diffstat (limited to 'WebCore/inspector/InjectedScript.cpp')
-rw-r--r--WebCore/inspector/InjectedScript.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/WebCore/inspector/InjectedScript.cpp b/WebCore/inspector/InjectedScript.cpp
index 42a2856..2e35e4b 100644
--- a/WebCore/inspector/InjectedScript.cpp
+++ b/WebCore/inspector/InjectedScript.cpp
@@ -47,6 +47,11 @@ InjectedScript::InjectedScript(ScriptObject injectedScriptObject)
void InjectedScript::dispatch(long callId, const String& methodName, const String& arguments, bool async, RefPtr<SerializedScriptValue>* result, bool* hadException)
{
ASSERT(!hasNoValue());
+ if (!canAccessInspectedWindow()) {
+ *hadException = true;
+ return;
+ }
+
ScriptFunctionCall function(m_injectedScriptObject, "dispatch");
function.appendArgument(methodName);
function.appendArgument(arguments);
@@ -71,10 +76,13 @@ PassRefPtr<SerializedScriptValue> InjectedScript::callFrames()
PassRefPtr<SerializedScriptValue> InjectedScript::wrapForConsole(ScriptValue value)
{
ASSERT(!hasNoValue());
- ScriptFunctionCall wrapFunction(m_injectedScriptObject, "wrapObject");
+ ScriptFunctionCall wrapFunction(m_injectedScriptObject, "wrapObjectForConsole");
wrapFunction.appendArgument(value);
- wrapFunction.appendArgument("console");
- ScriptValue r = wrapFunction.call();
+ wrapFunction.appendArgument(canAccessInspectedWindow());
+ bool hadException = false;
+ ScriptValue r = wrapFunction.call(hadException);
+ if (hadException)
+ return SerializedScriptValue::create("<exception>");
return r.serialize(m_injectedScriptObject.scriptState());
}
@@ -85,6 +93,10 @@ void InjectedScript::releaseWrapperObjectGroup(const String& objectGroup)
releaseFunction.appendArgument(objectGroup);
releaseFunction.call();
}
+bool InjectedScript::canAccessInspectedWindow()
+{
+ return InjectedScriptHost::canAccessInspectedWindow(m_injectedScriptObject.scriptState());
+}
} // namespace WebCore