OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/gpu/gpu_benchmarking_extension.h" | 5 #include "content/renderer/gpu/gpu_benchmarking_extension.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 " function(position_x, position_y, opt_callback, opt_duration_ms," | 303 " function(position_x, position_y, opt_callback, opt_duration_ms," |
304 " opt_gesture_source_type) {" | 304 " opt_gesture_source_type) {" |
305 " callback = opt_callback || function() { };" | 305 " callback = opt_callback || function() { };" |
306 " duration_ms = opt_duration_ms || 50;" | 306 " duration_ms = opt_duration_ms || 50;" |
307 " gesture_source_type = opt_gesture_source_type ||" | 307 " gesture_source_type = opt_gesture_source_type ||" |
308 " chrome.gpuBenchmarking.DEFAULT_INPUT;" | 308 " chrome.gpuBenchmarking.DEFAULT_INPUT;" |
309 " native function BeginTap();" | 309 " native function BeginTap();" |
310 " return BeginTap(position_x, position_y, callback, duration_ms," | 310 " return BeginTap(position_x, position_y, callback, duration_ms," |
311 " gesture_source_type);" | 311 " gesture_source_type);" |
312 "};" | 312 "};" |
313 "chrome.gpuBenchmarking.beginWindowSnapshotPNG = function(callback) {" | |
314 " native function BeginWindowSnapshotPNG();" | |
315 " BeginWindowSnapshotPNG(callback);" | |
316 "};" | |
317 "chrome.gpuBenchmarking.clearImageCache = function() {" | 313 "chrome.gpuBenchmarking.clearImageCache = function() {" |
318 " native function ClearImageCache();" | 314 " native function ClearImageCache();" |
319 " ClearImageCache();" | 315 " ClearImageCache();" |
320 "};" | 316 "};" |
321 "chrome.gpuBenchmarking.runMicroBenchmark =" | 317 "chrome.gpuBenchmarking.runMicroBenchmark =" |
322 " function(name, callback, opt_arguments) {" | 318 " function(name, callback, opt_arguments) {" |
323 " arguments = opt_arguments || {};" | 319 " arguments = opt_arguments || {};" |
324 " native function RunMicroBenchmark();" | 320 " native function RunMicroBenchmark();" |
325 " return RunMicroBenchmark(name, callback, arguments);" | 321 " return RunMicroBenchmark(name, callback, arguments);" |
326 "};" | 322 "};" |
(...skipping 17 matching lines...) Expand all Loading... |
344 v8::String::NewFromUtf8(isolate, "GestureSourceTypeSupported"))) | 340 v8::String::NewFromUtf8(isolate, "GestureSourceTypeSupported"))) |
345 return v8::FunctionTemplate::New(isolate, GestureSourceTypeSupported); | 341 return v8::FunctionTemplate::New(isolate, GestureSourceTypeSupported); |
346 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginSmoothScroll"))) | 342 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginSmoothScroll"))) |
347 return v8::FunctionTemplate::New(isolate, BeginSmoothScroll); | 343 return v8::FunctionTemplate::New(isolate, BeginSmoothScroll); |
348 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginScrollBounce"))) | 344 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginScrollBounce"))) |
349 return v8::FunctionTemplate::New(isolate, BeginScrollBounce); | 345 return v8::FunctionTemplate::New(isolate, BeginScrollBounce); |
350 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginPinch"))) | 346 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginPinch"))) |
351 return v8::FunctionTemplate::New(isolate, BeginPinch); | 347 return v8::FunctionTemplate::New(isolate, BeginPinch); |
352 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginTap"))) | 348 if (name->Equals(v8::String::NewFromUtf8(isolate, "BeginTap"))) |
353 return v8::FunctionTemplate::New(isolate, BeginTap); | 349 return v8::FunctionTemplate::New(isolate, BeginTap); |
354 if (name->Equals( | |
355 v8::String::NewFromUtf8(isolate, "BeginWindowSnapshotPNG"))) | |
356 return v8::FunctionTemplate::New(isolate, BeginWindowSnapshotPNG); | |
357 if (name->Equals(v8::String::NewFromUtf8(isolate, "ClearImageCache"))) | 350 if (name->Equals(v8::String::NewFromUtf8(isolate, "ClearImageCache"))) |
358 return v8::FunctionTemplate::New(isolate, ClearImageCache); | 351 return v8::FunctionTemplate::New(isolate, ClearImageCache); |
359 if (name->Equals(v8::String::NewFromUtf8(isolate, "RunMicroBenchmark"))) | 352 if (name->Equals(v8::String::NewFromUtf8(isolate, "RunMicroBenchmark"))) |
360 return v8::FunctionTemplate::New(isolate, RunMicroBenchmark); | 353 return v8::FunctionTemplate::New(isolate, RunMicroBenchmark); |
361 if (name->Equals(v8::String::NewFromUtf8(isolate, "HasGpuProcess"))) | 354 if (name->Equals(v8::String::NewFromUtf8(isolate, "HasGpuProcess"))) |
362 return v8::FunctionTemplate::New(isolate, HasGpuProcess); | 355 return v8::FunctionTemplate::New(isolate, HasGpuProcess); |
363 | 356 |
364 return v8::Handle<v8::FunctionTemplate>(); | 357 return v8::Handle<v8::FunctionTemplate>(); |
365 } | 358 } |
366 | 359 |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
783 v8::Handle<v8::Value> argv[] = { result }; | 776 v8::Handle<v8::Value> argv[] = { result }; |
784 | 777 |
785 frame->callFunctionEvenIfScriptDisabled( | 778 frame->callFunctionEvenIfScriptDisabled( |
786 callback_and_context->GetCallback(), | 779 callback_and_context->GetCallback(), |
787 v8::Object::New(isolate), | 780 v8::Object::New(isolate), |
788 1, | 781 1, |
789 argv); | 782 argv); |
790 } | 783 } |
791 } | 784 } |
792 | 785 |
793 static void BeginWindowSnapshotPNG( | |
794 const v8::FunctionCallbackInfo<v8::Value>& args) { | |
795 GpuBenchmarkingContext context; | |
796 if (!context.Init(false)) | |
797 return; | |
798 | |
799 if (!args[0]->IsFunction()) | |
800 return; | |
801 | |
802 v8::Local<v8::Function> callback_local = | |
803 v8::Local<v8::Function>::Cast(args[0]); | |
804 | |
805 scoped_refptr<CallbackAndContext> callback_and_context = | |
806 new CallbackAndContext(args.GetIsolate(), | |
807 callback_local, | |
808 context.web_frame()->mainWorldScriptContext()); | |
809 | |
810 context.render_view_impl()->GetWindowSnapshot( | |
811 base::Bind(&OnSnapshotCompleted, callback_and_context)); | |
812 } | |
813 | |
814 static void ClearImageCache( | 786 static void ClearImageCache( |
815 const v8::FunctionCallbackInfo<v8::Value>& args) { | 787 const v8::FunctionCallbackInfo<v8::Value>& args) { |
816 WebImageCache::clear(); | 788 WebImageCache::clear(); |
817 } | 789 } |
818 | 790 |
819 static void OnMicroBenchmarkCompleted( | 791 static void OnMicroBenchmarkCompleted( |
820 CallbackAndContext* callback_and_context, | 792 CallbackAndContext* callback_and_context, |
821 scoped_ptr<base::Value> result) { | 793 scoped_ptr<base::Value> result) { |
822 v8::Isolate* isolate = callback_and_context->isolate(); | 794 v8::Isolate* isolate = callback_and_context->isolate(); |
823 v8::HandleScope scope(isolate); | 795 v8::HandleScope scope(isolate); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); | 852 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); |
881 args.GetReturnValue().Set(!!gpu_channel); | 853 args.GetReturnValue().Set(!!gpu_channel); |
882 } | 854 } |
883 }; | 855 }; |
884 | 856 |
885 v8::Extension* GpuBenchmarkingExtension::Get() { | 857 v8::Extension* GpuBenchmarkingExtension::Get() { |
886 return new GpuBenchmarkingWrapper(); | 858 return new GpuBenchmarkingWrapper(); |
887 } | 859 } |
888 | 860 |
889 } // namespace content | 861 } // namespace content |
OLD | NEW |