diff options
author | ojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-27 00:50:16 +0000 |
---|---|---|
committer | ojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-27 00:50:16 +0000 |
commit | f8ca6e9ed1768aaf216c4ffa4eb572bbef0dc9fd (patch) | |
tree | 7d8eafaff84f2dc9a32072c9b5de115d7f535500 /webkit/port | |
parent | 3adb24ec4914ccb68cb9db958eadba2f54b58fe0 (diff) | |
download | chromium_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.cpp | 16 | ||||
-rw-r--r-- | webkit/port/bindings/v8/ScriptController.h | 3 | ||||
-rw-r--r-- | webkit/port/bindings/v8/ScriptSourceCode.h | 72 | ||||
-rw-r--r-- | webkit/port/bindings/v8/ScriptString.h | 65 | ||||
-rw-r--r-- | webkit/port/page/inspector/InspectorController.cpp | 2 |
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(); } |