summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/renderer/gpu/gpu_benchmarking_extension.cc114
-rw-r--r--content/renderer/memory_benchmarking_extension.cc15
-rw-r--r--content/renderer/skia_benchmarking_extension.cc84
-rw-r--r--content/renderer/web_ui_extension.cc21
4 files changed, 133 insertions, 101 deletions
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc
index e304815..96c908e 100644
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
@@ -105,28 +105,33 @@ class SkPictureSerializer {
class RenderingStatsEnumerator : public cc::RenderingStats::Enumerator {
public:
- RenderingStatsEnumerator(v8::Handle<v8::Object> stats_object)
- : stats_object(stats_object) { }
+ RenderingStatsEnumerator(v8::Isolate* isolate,
+ v8::Handle<v8::Object> stats_object)
+ : isolate(isolate), stats_object(stats_object) {}
virtual void AddInt64(const char* name, int64 value) OVERRIDE {
- stats_object->Set(v8::String::New(name), v8::Number::New(value));
+ stats_object->Set(v8::String::NewFromUtf8(isolate, name),
+ v8::Number::New(isolate, value));
}
virtual void AddDouble(const char* name, double value) OVERRIDE {
- stats_object->Set(v8::String::New(name), v8::Number::New(value));
+ stats_object->Set(v8::String::NewFromUtf8(isolate, name),
+ v8::Number::New(isolate, value));
}
virtual void AddInt(const char* name, int value) OVERRIDE {
- stats_object->Set(v8::String::New(name), v8::Integer::New(value));
+ stats_object->Set(v8::String::NewFromUtf8(isolate, name),
+ v8::Integer::New(value));
}
virtual void AddTimeDeltaInSecondsF(const char* name,
const base::TimeDelta& value) OVERRIDE {
- stats_object->Set(v8::String::New(name),
- v8::Number::New(value.InSecondsF()));
+ stats_object->Set(v8::String::NewFromUtf8(isolate, name),
+ v8::Number::New(isolate, value.InSecondsF()));
}
private:
+ v8::Isolate* isolate;
v8::Handle<v8::Object> stats_object;
};
@@ -162,8 +167,8 @@ class CallbackAndContext : public base::RefCounted<CallbackAndContext> {
friend class base::RefCounted<CallbackAndContext>;
virtual ~CallbackAndContext() {
- callback_.Dispose();
- context_.Dispose();
+ callback_.Reset();
+ context_.Reset();
}
v8::Isolate* isolate_;
@@ -328,32 +333,37 @@ class GpuBenchmarkingWrapper : public v8::Extension {
" return HasGpuProcess();"
"};") {}
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
+ virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
+ v8::Isolate* isolate,
v8::Handle<v8::String> name) OVERRIDE {
- if (name->Equals(v8::String::New("SetNeedsDisplayOnAllLayers")))
- return v8::FunctionTemplate::New(SetNeedsDisplayOnAllLayers);
- if (name->Equals(v8::String::New("SetRasterizeOnlyVisibleContent")))
- return v8::FunctionTemplate::New(SetRasterizeOnlyVisibleContent);
- if (name->Equals(v8::String::New("GetRenderingStats")))
- return v8::FunctionTemplate::New(GetRenderingStats);
- if (name->Equals(v8::String::New("GetGpuRenderingStats")))
- return v8::FunctionTemplate::New(GetGpuRenderingStats);
- if (name->Equals(v8::String::New("PrintToSkPicture")))
- return v8::FunctionTemplate::New(PrintToSkPicture);
- if (name->Equals(v8::String::New("BeginSmoothScroll")))
- return v8::FunctionTemplate::New(BeginSmoothScroll);
- if (name->Equals(v8::String::New("SmoothScrollSendsTouch")))
- return v8::FunctionTemplate::New(SmoothScrollSendsTouch);
- if (name->Equals(v8::String::New("BeginPinch")))
- return v8::FunctionTemplate::New(BeginPinch);
- if (name->Equals(v8::String::New("BeginWindowSnapshotPNG")))
- return v8::FunctionTemplate::New(BeginWindowSnapshotPNG);
- if (name->Equals(v8::String::New("ClearImageCache")))
- return v8::FunctionTemplate::New(ClearImageCache);
- if (name->Equals(v8::String::New("RunMicroBenchmark")))
- return v8::FunctionTemplate::New(RunMicroBenchmark);
- if (name->Equals(v8::String::New("HasGpuProcess")))
- return v8::FunctionTemplate::New(HasGpuProcess);
+ if (name->Equals(
+ v8::String::NewFromUtf8(isolate, "SetNeedsDisplayOnAllLayers")))
+ return v8::FunctionTemplate::New(isolate, SetNeedsDisplayOnAllLayers);
+ if (name->Equals(
+ v8::String::NewFromUtf8(isolate, "SetRasterizeOnlyVisibleContent")))
+ return v8::FunctionTemplate::New(isolate, SetRasterizeOnlyVisibleContent);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetRenderingStats")))
+ return v8::FunctionTemplate::New(isolate, GetRenderingStats);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetGpuRenderingStats")))
+ return v8::FunctionTemplate::New(isolate, GetGpuRenderingStats);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "PrintToSkPicture")))
+ return v8::FunctionTemplate::New(isolate, PrintToSkPicture);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginSmoothScroll")))
+ return v8::FunctionTemplate::New(isolate, BeginSmoothScroll);
+ if (name->Equals(
+ v8::String::NewFromUtf8(isolate, "SmoothScrollSendsTouch")))
+ return v8::FunctionTemplate::New(isolate, SmoothScrollSendsTouch);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginPinch")))
+ return v8::FunctionTemplate::New(isolate, BeginPinch);
+ if (name->Equals(
+ v8::String::NewFromUtf8(isolate, "BeginWindowSnapshotPNG")))
+ return v8::FunctionTemplate::New(isolate, BeginWindowSnapshotPNG);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "ClearImageCache")))
+ return v8::FunctionTemplate::New(isolate, ClearImageCache);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "RunMicroBenchmark")))
+ return v8::FunctionTemplate::New(isolate, RunMicroBenchmark);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "HasGpuProcess")))
+ return v8::FunctionTemplate::New(isolate, HasGpuProcess);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -392,7 +402,7 @@ class GpuBenchmarkingWrapper : public v8::Extension {
context.render_view_impl()->GetBrowserRenderingStats(&browser_stats);
v8::Handle<v8::Object> stats_object = v8::Object::New();
- RenderingStatsEnumerator enumerator(stats_object);
+ RenderingStatsEnumerator enumerator(args.GetIsolate(), stats_object);
stats.rendering_stats.EnumerateFields(&enumerator);
gpu_stats.EnumerateFields(&enumerator);
browser_stats.EnumerateFields(&enumerator);
@@ -410,8 +420,9 @@ class GpuBenchmarkingWrapper : public v8::Extension {
content::GpuRenderingStats gpu_stats;
context.render_view_impl()->GetGpuRenderingStats(&gpu_stats);
- v8::Handle<v8::Object> stats_object = v8::Object::New();
- RenderingStatsEnumerator enumerator(stats_object);
+ v8::Isolate* isolate = args.GetIsolate();
+ v8::Handle<v8::Object> stats_object = v8::Object::New(isolate);
+ RenderingStatsEnumerator enumerator(isolate, stats_object);
gpu_stats.EnumerateFields(&enumerator);
args.GetReturnValue().Set(stats_object);
@@ -422,7 +433,7 @@ class GpuBenchmarkingWrapper : public v8::Extension {
if (args.Length() != 1)
return;
- v8::String::AsciiValue dirname(args[0]);
+ v8::String::Utf8Value dirname(args[0]);
if (dirname.length() == 0)
return;
@@ -440,8 +451,9 @@ class GpuBenchmarkingWrapper : public v8::Extension {
!base::PathIsWritable(dirpath)) {
std::string msg("Path is not writable: ");
msg.append(dirpath.MaybeAsASCII());
- v8::ThrowException(v8::Exception::Error(
- v8::String::New(msg.c_str(), msg.length())));
+ v8::Isolate* isolate = args.GetIsolate();
+ isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(
+ isolate, msg.c_str(), v8::String::kNormalString, msg.length())));
return;
}
@@ -598,7 +610,8 @@ class GpuBenchmarkingWrapper : public v8::Extension {
static void OnSnapshotCompleted(CallbackAndContext* callback_and_context,
const gfx::Size& size,
const std::vector<unsigned char>& png) {
- v8::HandleScope scope(callback_and_context->isolate());
+ v8::Isolate* isolate = callback_and_context->isolate();
+ v8::HandleScope scope(isolate);
v8::Handle<v8::Context> context = callback_and_context->GetContext();
v8::Context::Scope context_scope(context);
WebFrame* frame = WebFrame::frameForContext(context);
@@ -608,24 +621,27 @@ class GpuBenchmarkingWrapper : public v8::Extension {
if(!size.IsEmpty()) {
v8::Handle<v8::Object> result_object;
- result_object = v8::Object::New();
+ result_object = v8::Object::New(isolate);
- result_object->Set(v8::String::New("width"),
- v8::Number::New(size.width()));
- result_object->Set(v8::String::New("height"),
- v8::Number::New(size.height()));
+ result_object->Set(v8::String::NewFromUtf8(isolate, "width"),
+ v8::Number::New(isolate, size.width()));
+ result_object->Set(v8::String::NewFromUtf8(isolate, "height"),
+ v8::Number::New(isolate, size.height()));
std::string base64_png;
base::Base64Encode(base::StringPiece(
reinterpret_cast<const char*>(&*png.begin()), png.size()),
&base64_png);
- result_object->Set(v8::String::New("data"),
- v8::String::New(base64_png.c_str(), base64_png.size()));
+ result_object->Set(v8::String::NewFromUtf8(isolate, "data"),
+ v8::String::NewFromUtf8(isolate,
+ base64_png.c_str(),
+ v8::String::kNormalString,
+ base64_png.size()));
result = result_object;
} else {
- result = v8::Null();
+ result = v8::Null(isolate);
}
v8::Handle<v8::Value> argv[] = { result };
diff --git a/content/renderer/memory_benchmarking_extension.cc b/content/renderer/memory_benchmarking_extension.cc
index e463fcf..50d5dcc 100644
--- a/content/renderer/memory_benchmarking_extension.cc
+++ b/content/renderer/memory_benchmarking_extension.cc
@@ -41,12 +41,13 @@ class MemoryBenchmarkingWrapper : public v8::Extension {
"};"
) {}
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
+ virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
+ v8::Isolate* isolate,
v8::Handle<v8::String> name) OVERRIDE {
- if (name->Equals(v8::String::New("IsHeapProfilerRunning")))
- return v8::FunctionTemplate::New(IsHeapProfilerRunning);
- else if (name->Equals(v8::String::New("HeapProfilerDump")))
- return v8::FunctionTemplate::New(HeapProfilerDump);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "IsHeapProfilerRunning")))
+ return v8::FunctionTemplate::New(isolate, IsHeapProfilerRunning);
+ else if (name->Equals(v8::String::NewFromUtf8(isolate, "HeapProfilerDump")))
+ return v8::FunctionTemplate::New(isolate, HeapProfilerDump);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -60,10 +61,10 @@ class MemoryBenchmarkingWrapper : public v8::Extension {
const v8::FunctionCallbackInfo<v8::Value>& args) {
std::string process_type;
if (args.Length() && args[0]->IsString())
- process_type = *v8::String::AsciiValue(args[0]);
+ process_type = *v8::String::Utf8Value(args[0]);
std::string reason("benchmarking_extension");
if (args.Length() > 1 && args[1]->IsString())
- reason = *v8::String::AsciiValue(args[1]);
+ reason = *v8::String::Utf8Value(args[1]);
if (process_type == "browser") {
content::RenderThreadImpl::current()->Send(
new MemoryBenchmarkHostMsg_HeapProfilerDump(reason));
diff --git a/content/renderer/skia_benchmarking_extension.cc b/content/renderer/skia_benchmarking_extension.cc
index 46fd14d..d19dd62 100644
--- a/content/renderer/skia_benchmarking_extension.cc
+++ b/content/renderer/skia_benchmarking_extension.cc
@@ -30,22 +30,25 @@ namespace {
const char kSkiaBenchmarkingExtensionName[] = "v8/SkiaBenchmarking";
-static scoped_ptr<base::Value> ParsePictureArg(v8::Handle<v8::Value> arg) {
+static scoped_ptr<base::Value> ParsePictureArg(v8::Isolate* isolate,
+ v8::Handle<v8::Value> arg) {
scoped_ptr<content::V8ValueConverter> converter(
content::V8ValueConverter::create());
return scoped_ptr<base::Value>(
- converter->FromV8Value(arg, v8::Context::GetCurrent()));
+ converter->FromV8Value(arg, isolate->GetCurrentContext()));
}
-static scoped_refptr<cc::Picture> ParsePictureStr(v8::Handle<v8::Value> arg) {
- scoped_ptr<base::Value> picture_value = ParsePictureArg(arg);
+static scoped_refptr<cc::Picture> ParsePictureStr(v8::Isolate* isolate,
+ v8::Handle<v8::Value> arg) {
+ scoped_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
if (!picture_value)
return NULL;
return cc::Picture::CreateFromSkpValue(picture_value.get());
}
-static scoped_refptr<cc::Picture> ParsePictureHash(v8::Handle<v8::Value> arg) {
- scoped_ptr<base::Value> picture_value = ParsePictureArg(arg);
+static scoped_refptr<cc::Picture> ParsePictureHash(v8::Isolate* isolate,
+ v8::Handle<v8::Value> arg) {
+ scoped_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
if (!picture_value)
return NULL;
return cc::Picture::CreateFromValue(picture_value.get());
@@ -118,16 +121,17 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
content::SkiaBenchmarkingExtension::InitSkGraphics();
}
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
+ virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
+ v8::Isolate* isolate,
v8::Handle<v8::String> name) OVERRIDE {
- if (name->Equals(v8::String::New("Rasterize")))
- return v8::FunctionTemplate::New(Rasterize);
- if (name->Equals(v8::String::New("GetOps")))
- return v8::FunctionTemplate::New(GetOps);
- if (name->Equals(v8::String::New("GetOpTimings")))
- return v8::FunctionTemplate::New(GetOpTimings);
- if (name->Equals(v8::String::New("GetInfo")))
- return v8::FunctionTemplate::New(GetInfo);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "Rasterize")))
+ return v8::FunctionTemplate::New(isolate, Rasterize);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetOps")))
+ return v8::FunctionTemplate::New(isolate, GetOps);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetOpTimings")))
+ return v8::FunctionTemplate::New(isolate, GetOpTimings);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetInfo")))
+ return v8::FunctionTemplate::New(isolate, GetInfo);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -136,7 +140,8 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
if (args.Length() < 1)
return;
- scoped_refptr<cc::Picture> picture = ParsePictureHash(args[0]);
+ v8::Isolate* isolate = args.GetIsolate();
+ scoped_refptr<cc::Picture> picture = ParsePictureHash(isolate, args[0]);
if (!picture.get())
return;
@@ -149,7 +154,7 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
scoped_ptr<content::V8ValueConverter> converter(
content::V8ValueConverter::create());
scoped_ptr<base::Value> params_value(
- converter->FromV8Value(args[1], v8::Context::GetCurrent()));
+ converter->FromV8Value(args[1], isolate->GetCurrentContext()));
const base::DictionaryValue* params_dict = NULL;
if (params_value.get() && params_value->GetAsDictionary(&params_dict)) {
@@ -216,11 +221,11 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
}
v8::Handle<v8::Object> result = v8::Object::New();
- result->Set(v8::String::New("width"),
+ result->Set(v8::String::NewFromUtf8(isolate, "width"),
v8::Number::New(snapped_clip.width()));
- result->Set(v8::String::New("height"),
+ result->Set(v8::String::NewFromUtf8(isolate, "height"),
v8::Number::New(snapped_clip.height()));
- result->Set(v8::String::New("data"), buffer.toV8Value());
+ result->Set(v8::String::NewFromUtf8(isolate, "data"), buffer.toV8Value());
args.GetReturnValue().Set(result);
}
@@ -229,7 +234,8 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
if (args.Length() != 1)
return;
- scoped_refptr<cc::Picture> picture = ParsePictureHash(args[0]);
+ v8::Isolate* isolate = args.GetIsolate();
+ scoped_refptr<cc::Picture> picture = ParsePictureHash(isolate, args[0]);
if (!picture.get())
return;
@@ -237,25 +243,27 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
SkDebugCanvas canvas(bounds.width(), bounds.height());
picture->Replay(&canvas);
- v8::Local<v8::Array> result = v8::Array::New(canvas.getSize());
+ v8::Local<v8::Array> result = v8::Array::New(isolate, canvas.getSize());
for (int i = 0; i < canvas.getSize(); ++i) {
DrawType cmd_type = canvas.getDrawCommandAt(i)->getType();
v8::Handle<v8::Object> cmd = v8::Object::New();
- cmd->Set(v8::String::New("cmd_type"), v8::Integer::New(cmd_type));
- cmd->Set(v8::String::New("cmd_string"), v8::String::New(
- SkDrawCommand::GetCommandString(cmd_type)));
+ cmd->Set(v8::String::NewFromUtf8(isolate, "cmd_type"),
+ v8::Integer::New(isolate, cmd_type));
+ cmd->Set(v8::String::NewFromUtf8(isolate, "cmd_string"),
+ v8::String::NewFromUtf8(
+ isolate, SkDrawCommand::GetCommandString(cmd_type)));
SkTDArray<SkString*>* info = canvas.getCommandInfo(i);
DCHECK(info);
- v8::Local<v8::Array> v8_info = v8::Array::New(info->count());
+ v8::Local<v8::Array> v8_info = v8::Array::New(isolate, info->count());
for (int j = 0; j < info->count(); ++j) {
const SkString* info_str = (*info)[j];
DCHECK(info_str);
- v8_info->Set(j, v8::String::New(info_str->c_str()));
+ v8_info->Set(j, v8::String::NewFromUtf8(isolate, info_str->c_str()));
}
- cmd->Set(v8::String::New("info"), v8_info);
+ cmd->Set(v8::String::NewFromUtf8(isolate, "info"), v8_info);
result->Set(i, cmd);
}
@@ -267,7 +275,8 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
if (args.Length() != 1)
return;
- scoped_refptr<cc::Picture> picture = ParsePictureHash(args[0]);
+ v8::Isolate* isolate = args.GetIsolate();
+ scoped_refptr<cc::Picture> picture = ParsePictureHash(isolate, args[0]);
if (!picture.get())
return;
@@ -289,14 +298,14 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
picture->Replay(&benchmarking_canvas);
v8::Local<v8::Array> op_times =
- v8::Array::New(benchmarking_canvas.CommandCount());
+ v8::Array::New(isolate, benchmarking_canvas.CommandCount());
for (size_t i = 0; i < benchmarking_canvas.CommandCount(); ++i)
op_times->Set(i, v8::Number::New(benchmarking_canvas.GetTime(i)));
- v8::Handle<v8::Object> result = v8::Object::New();
- result->Set(v8::String::New("total_time"),
+ v8::Handle<v8::Object> result = v8::Object::New(isolate);
+ result->Set(v8::String::NewFromUtf8(isolate, "total_time"),
v8::Number::New(total_time.InMillisecondsF()));
- result->Set(v8::String::New("cmd_times"), op_times);
+ result->Set(v8::String::NewFromUtf8(isolate, "cmd_times"), op_times);
args.GetReturnValue().Set(result);
}
@@ -305,14 +314,15 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
if (args.Length() != 1)
return;
- scoped_refptr<cc::Picture> picture = ParsePictureStr(args[0]);
+ v8::Isolate* isolate = args.GetIsolate();
+ scoped_refptr<cc::Picture> picture = ParsePictureStr(isolate, args[0]);
if (!picture.get())
return;
- v8::Handle<v8::Object> result = v8::Object::New();
- result->Set(v8::String::New("width"),
+ v8::Handle<v8::Object> result = v8::Object::New(isolate);
+ result->Set(v8::String::NewFromUtf8(isolate, "width"),
v8::Number::New(picture->LayerRect().width()));
- result->Set(v8::String::New("height"),
+ result->Set(v8::String::NewFromUtf8(isolate, "height"),
v8::Number::New(picture->LayerRect().height()));
args.GetReturnValue().Set(result);
diff --git a/content/renderer/web_ui_extension.cc b/content/renderer/web_ui_extension.cc
index 2675f39..f887e9d 100644
--- a/content/renderer/web_ui_extension.cc
+++ b/content/renderer/web_ui_extension.cc
@@ -48,7 +48,8 @@ class WebUIExtensionWrapper : public v8::Extension {
WebUIExtensionWrapper();
virtual ~WebUIExtensionWrapper();
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
+ virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
+ v8::Isolate* isolate,
v8::Handle<v8::String> name) OVERRIDE;
static void Send(const v8::FunctionCallbackInfo<v8::Value>& args);
static void GetVariableValue(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -65,12 +66,13 @@ WebUIExtensionWrapper::WebUIExtensionWrapper()
WebUIExtensionWrapper::~WebUIExtensionWrapper() {}
-v8::Handle<v8::FunctionTemplate> WebUIExtensionWrapper::GetNativeFunction(
- v8::Handle<v8::String> name) {
- if (name->Equals(v8::String::New("Send")))
- return v8::FunctionTemplate::New(Send);
- if (name->Equals(v8::String::New("GetVariableValue")))
- return v8::FunctionTemplate::New(GetVariableValue);
+v8::Handle<v8::FunctionTemplate>
+WebUIExtensionWrapper::GetNativeFunctionTemplate(v8::Isolate* isolate,
+ v8::Handle<v8::String> name) {
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "Send")))
+ return v8::FunctionTemplate::New(isolate, Send);
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "GetVariableValue")))
+ return v8::FunctionTemplate::New(isolate, GetVariableValue);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -155,7 +157,10 @@ void WebUIExtensionWrapper::GetVariableValue(
std::string key = *v8::String::Utf8Value(args[0]->ToString());
std::string value = WebUIExtensionData::Get(render_view)->GetValue(key);
- args.GetReturnValue().Set(v8::String::New(value.c_str(), value.length()));
+ args.GetReturnValue().Set(v8::String::NewFromUtf8(args.GetIsolate(),
+ value.c_str(),
+ v8::String::kNormalString,
+ value.length()));
}
// static