diff options
Diffstat (limited to 'WebKit/chromium/src/WebBindings.cpp')
-rw-r--r-- | WebKit/chromium/src/WebBindings.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp index c25c31b..d0a20d3 100644 --- a/WebKit/chromium/src/WebBindings.cpp +++ b/WebKit/chromium/src/WebBindings.cpp @@ -323,6 +323,17 @@ static NPObject* makeIntArrayImpl(const WebVector<int>& data) return npCreateV8ScriptObject(0, result, window); } +static NPObject* makeStringArrayImpl(const WebVector<WebString>& data) +{ + v8::HandleScope handleScope; + v8::Handle<v8::Array> result = v8::Array::New(data.size()); + for (size_t i = 0; i < data.size(); ++i) + result->Set(i, data[i].data() ? v8::String::New(reinterpret_cast<const uint16_t*>((data[i].data()))) : v8::String::New("")); + + WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext()); + return npCreateV8ScriptObject(0, result, window); +} + #endif bool WebBindings::getDragData(NPObject* event, int* eventId, WebDragData* data) @@ -371,6 +382,16 @@ NPObject* WebBindings::makeIntArray(const WebVector<int> & data) #endif } +NPObject* WebBindings::makeStringArray(const WebVector<WebString>& data) +{ +#if USE(V8) + return makeStringArrayImpl(data); +#else + // Not supported on other ports (JSC, etc.). + return 0; +#endif +} + void WebBindings::pushExceptionHandler(ExceptionHandler handler, void* data) { WebCore::pushExceptionHandler(handler, data); |