summaryrefslogtreecommitdiffstats
path: root/webkit/port
diff options
context:
space:
mode:
authorojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-27 00:50:16 +0000
committerojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-27 00:50:16 +0000
commitf8ca6e9ed1768aaf216c4ffa4eb572bbef0dc9fd (patch)
tree7d8eafaff84f2dc9a32072c9b5de115d7f535500 /webkit/port
parent3adb24ec4914ccb68cb9db958eadba2f54b58fe0 (diff)
downloadchromium_src-f8ca6e9ed1768aaf216c4ffa4eb572bbef0dc9fd.zip
chromium_src-f8ca6e9ed1768aaf216c4ffa4eb572bbef0dc9fd.tar.gz
chromium_src-f8ca6e9ed1768aaf216c4ffa4eb572bbef0dc9fd.tar.bz2
src/webkit side of webKit merge 38653:38729
Review URL: http://codereview.chromium.org/12708 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6081 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port')
-rw-r--r--webkit/port/bindings/v8/ScriptController.cpp16
-rw-r--r--webkit/port/bindings/v8/ScriptController.h3
-rw-r--r--webkit/port/bindings/v8/ScriptSourceCode.h72
-rw-r--r--webkit/port/bindings/v8/ScriptString.h65
-rw-r--r--webkit/port/page/inspector/InspectorController.cpp2
5 files changed, 146 insertions, 12 deletions
diff --git a/webkit/port/bindings/v8/ScriptController.cpp b/webkit/port/bindings/v8/ScriptController.cpp
index 0086459..c286b8c 100644
--- a/webkit/port/bindings/v8/ScriptController.cpp
+++ b/webkit/port/bindings/v8/ScriptController.cpp
@@ -43,6 +43,7 @@
#include "npruntime_priv.h"
#include "np_v8object.h"
#include "PausedTimeouts.h"
+#include "ScriptSourceCode.h"
#include "Widget.h"
#include "v8_proxy.h"
@@ -263,12 +264,8 @@ bool ScriptController::processingUserGesture() const
// Evaluate a script file in the environment of this proxy.
-ScriptValue ScriptController::evaluate(const String& filename, int baseLine,
- const String& code, Node* node, bool* succ)
+ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode)
{
- if (succ)
- *succ = false;
-
v8::HandleScope hs;
v8::Handle<v8::Context> context = V8Proxy::GetContext(m_proxy->frame());
if (context.IsEmpty())
@@ -279,15 +276,14 @@ ScriptValue ScriptController::evaluate(const String& filename, int baseLine,
// HTMLTokenizer used to use base zero line numbers for scripts, now it
// uses base 1. This confuses v8, which uses line offsets from the
// first line.
- v8::Local<v8::Value> obj = m_proxy->Evaluate(filename, baseLine - 1, code,
- node);
+ v8::Local<v8::Value> obj = m_proxy->Evaluate(sourceCode.url(),
+ sourceCode.startLine() - 1,
+ sourceCode.source(),
+ NULL);
if (obj.IsEmpty() || obj->IsUndefined())
return ScriptValue();
- if (succ)
- *succ = true;
-
return ScriptValue(obj);
}
diff --git a/webkit/port/bindings/v8/ScriptController.h b/webkit/port/bindings/v8/ScriptController.h
index 71954f1..c7daeb8 100644
--- a/webkit/port/bindings/v8/ScriptController.h
+++ b/webkit/port/bindings/v8/ScriptController.h
@@ -127,6 +127,7 @@ class Frame;
class HTMLPlugInElement;
class Node;
class PausedTimeouts;
+class ScriptSourceCode;
class String;
class Widget;
@@ -148,7 +149,7 @@ public:
// Evaluate a script file in the environment of this proxy.
// If succeeded, 'succ' is set to true and result is returned
// as a string.
- ScriptValue evaluate(const String& filename, int baseLine, const String& code, Node* node = NULL, bool* succ = NULL);
+ ScriptValue evaluate(const ScriptSourceCode&);
void disposeJSResult(JSResult result);
void collectGarbage();
diff --git a/webkit/port/bindings/v8/ScriptSourceCode.h b/webkit/port/bindings/v8/ScriptSourceCode.h
new file mode 100644
index 0000000..63071a9
--- /dev/null
+++ b/webkit/port/bindings/v8/ScriptSourceCode.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2008, 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
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ScriptSourceCode_h
+#define ScriptSourceCode_h
+
+#include "CachedScript.h"
+#include "KURL.h"
+#include "PlatformString.h"
+
+namespace WebCore {
+
+class ScriptSourceCode {
+public:
+ ScriptSourceCode(const String& source, const KURL& url = KURL(), int startLine = 1)
+ : m_source(source)
+ , m_url(url)
+ , m_startLine(startLine)
+ {
+ }
+
+ // We lose the encoding information from CachedScript.
+ // Not sure if that matters.
+ ScriptSourceCode(CachedScript* cs)
+ : m_source(cs->script())
+ , m_url(cs->url())
+ , m_startLine(1)
+ {
+ }
+
+ bool isEmpty() const { return m_source.isEmpty(); }
+
+ const String& source() const { return m_source; }
+ const KURL& url() const { return m_url; }
+ int startLine() const { return m_startLine; }
+
+private:
+ String m_source;
+ KURL m_url;
+ int m_startLine;
+};
+
+} // namespace WebCore
+
+#endif // ScriptSourceCode_h
diff --git a/webkit/port/bindings/v8/ScriptString.h b/webkit/port/bindings/v8/ScriptString.h
new file mode 100644
index 0000000..fd379e3
--- /dev/null
+++ b/webkit/port/bindings/v8/ScriptString.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2008, 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
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ScriptString_h
+#define ScriptString_h
+
+#include "PlatformString.h"
+
+namespace WebCore {
+
+class ScriptString {
+public:
+ ScriptString(const char* s) : m_str(s) {}
+
+ operator String() const { return m_str; }
+
+ bool isNull() const { return m_str.isNull(); }
+ size_t size() const { return m_str.length(); }
+
+ ScriptString& operator=(const char* s)
+ {
+ m_str = s;
+ return *this;
+ }
+
+ ScriptString& operator+=(const String& s)
+ {
+ m_str += s;
+ return *this;
+ }
+
+private:
+ String m_str;
+};
+
+} // namespace WebCore
+
+#endif // ScriptString_h
diff --git a/webkit/port/page/inspector/InspectorController.cpp b/webkit/port/page/inspector/InspectorController.cpp
index 25f6311..8c8db35 100644
--- a/webkit/port/page/inspector/InspectorController.cpp
+++ b/webkit/port/page/inspector/InspectorController.cpp
@@ -1634,7 +1634,7 @@ void InspectorController::didFailLoading(DocumentLoader* loader, unsigned long i
}
}
-void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, String& sourceString)
+void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, const String& sourceString)
{
notImplemented();
}