summaryrefslogtreecommitdiffstats
path: root/content/renderer/gpu/gpu_benchmarking_extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/gpu/gpu_benchmarking_extension.cc')
-rw-r--r--content/renderer/gpu/gpu_benchmarking_extension.cc114
1 files changed, 65 insertions, 49 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 };